[tahoe-lafs-trac-stream] [tahoe-lafs] #1648: assertion failure 'assert len(self._active_readers) >= self._required_shares' in mutable retrieve

tahoe-lafs trac at tahoe-lafs.org
Sun Jan 8 20:40:11 UTC 2012


#1648: assertion failure 'assert len(self._active_readers) >=
self._required_shares' in mutable retrieve
-------------------------+-------------------------------------------------
     Reporter:           |      Owner:  kevan
  davidsarah             |     Status:  new
         Type:  defect   |  Milestone:  1.9.1
     Priority:  major    |    Version:  1.9.0
    Component:  code-    |   Keywords:  assertion error retrieve mutable
  mutable                |  regression review-needed
   Resolution:           |
Launchpad Bug:           |
-------------------------+-------------------------------------------------
Changes (by kevan):

 * keywords:  assertion error retrieve mutable regression => assertion error
     retrieve mutable regression review-needed


Comment:

 I made a pull request [https://github.com/warner/tahoe-lafs/pull/3 on
 GitHub]. From the description there:

 > The Retrieve class gets used both for downloading, validating, decoding
 and decrypting remote shares (writing the plaintext to a consumer) and for
 validating remote shares, since the steps to validate the shares of a file
 are a subset of the steps to assemble that file into plaintext. There were
 several assertions throughout the code path used by the verification
 process that didn't take the verification use case into account, since
 they implicitly assumed that having fewer than k active readers was an
 error. This is true in the case of downloading a file, since the Retrieve
 should be aborted with an error before proceeding down this code path in
 that case, but not for a verification, which can sensibly continue with
 fewer than k shares. These commits test that this case is handled
 correctly, remove the assertions so that verification operations with
 fewer than k shares don't fail due to an assertion error, and add code to
 Retrieve._download_current_segment to ensure that the verification
 operation is aborted if all of the shares are corrupt.

 I'm setting 'review-needed'. I guess if we're using GitHub, that means you
 should go look at the pull request. I can attach an equivalent patch to
 this ticket if anyone wants me to do that.

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


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