[tahoe-lafs-trac-stream] [tahoe-lafs] #667: KeyError in mutable download

tahoe-lafs trac at tahoe-lafs.org
Thu Dec 6 22:15:47 UTC 2012


#667: KeyError in mutable download
-------------------------+-------------------------------------------------
     Reporter:  warner   |      Owner:
         Type:  defect   |     Status:  new
     Priority:  major    |  Milestone:  soon
    Component:  code-    |    Version:  1.3.0
  mutable                |   Keywords:  mutable download reliability
   Resolution:           |  availability
Launchpad Bug:           |
-------------------------+-------------------------------------------------

Old description:

> Zooko observed a !KeyError exception raised during mutable-file
> retrieval, in #651 (specifically at
> source:src/allmydata/mutable/retrieve.py#L157). This is a bug in the
> retrieval code, probably triggered by running out of valid shares. Either
> the {{{self.remaining_sharemap}}} mapping should not be modified while
> {{{download()}}} is iterating over it, or more likely {{{download()}}}
> must be prepared for {{{remaining_sharemap}}} to change during the
> iteration.

New description:

 Zooko observed a !KeyError exception raised during mutable-file retrieval,
 in #651 (specifically at source:src/allmydata/mutable/retrieve.py#L157).
 This is a bug in the retrieval code, probably triggered by running out of
 valid shares. Either the {{{self.remaining_sharemap}}} mapping should not
 be modified while {{{download()}}} is iterating over it, or more likely
 {{{download()}}} must be prepared for {{{remaining_sharemap}}} to change
 during the iteration.

--

Comment (by davidsarah):

 The description of this ticket probably refers to the code as it was
 before the start of Kevan's MDMF patches, i.e. up to and including
 [source:trunk/src/allmydata/mutable/retrieve.py at 4772#L157 darcs revision
 4772] / [source:git/src/allmydata/mutable/retrieve.py?rev=4061258c#L157
 git revision 4061258c]. The code changes a lot for MDMF and this bug might
 have been incidentally fixed -- in particular, there is no longer any
 indexing into {{{self.remaining_sharemap}}}, and all of the loops over its
 keys are done synchronously with the keys having been copied beforehand.

 If that's correct, this ticket can be closed as "cannot reproduce".

 (There was a vaguely similar bug in
 [source:git/src/allmydata/mutable/publish.py] that is easy to confuse with
 this one, but that was fixed in #1749.)

-- 
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/667#comment:8>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list