[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