[tahoe-lafs-trac-stream] [tahoe-lafs] #1636: Unhandled error in Deferred while uploading (current darcs build)

tahoe-lafs trac at tahoe-lafs.org
Thu Dec 29 00:20:15 UTC 2011


#1636: Unhandled error in Deferred while uploading (current darcs build)
----------------------------+------------------------
     Reporter:  killyourtv  |      Owner:  nobody
         Type:  defect      |     Status:  new
     Priority:  critical    |  Milestone:  1.9.1
    Component:  unknown     |    Version:  1.9.0
   Resolution:              |   Keywords:  regression
Launchpad Bug:              |
----------------------------+------------------------

Comment (by zooko):

 I believe the current state of this ticket is {{{blocked on someone
 verifying that it occurs with upstream Tahoe-LAFS (no i2p-specific patches
 or other patches that aren't in trunk)}}}.

 Is that right?

 killyourtv appears to be a reliable reporter of bugs so far -- his reports
 are low on speculation and include actual facts like the twistd file...

 Okay, just had a conversation with Brian and David-Sarah on IRC and it
 seems clear that there is a bug in
 [source:git/src/allmydata/mutable/retrieve.py?annotate=blame&rev=5bf1ffbc879cf08253eb695d8b0742629f26cb84#L936
 the code for mutable files] inasmuch as it assumes that the
 [source:git/src/allmydata/storage_client.py?annotate=blame&rev=5bf1ffbc879cf08253eb695d8b0742629f26cb84#L149
 server object]'s {{{.rref}}} member will be an object, but instead that
 may be {{{None}}} due to normal, inevitable network entropy
 ([source:git/src/allmydata/storage_client.py?annotate=blame&rev=5bf1ffbc879cf08253eb695d8b0742629f26cb84#L254
 here]).

 There are two possible fixes:

 1. Find all places that call {{{.get_rref}}} make sure they sensibly
 handle the case that they get {{{None}}}.
 2. Change the server instance to keep a
 [http://foolscap.lothar.com/trac/browser/foolscap/referenceable.py?annotate=blame&rev=03d9fdb5a5bb089f708614667830477dbd0bff63#L412
 RemoteReference] object in {{{.rref}}} even after it has been notified
 that the connection has been disconnected and that object will raise
 [http://foolscap.lothar.com/trac/browser/foolscap/ipb.py?annotate=blame&rev=10a3bfb6ab75b8997e4995e4c77ab8bf02f1bdcb#L10
 DeadReferenceError] if it is used.

 I'll investigate both approaches and produce a patch for one or each of
 them.

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


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