[tahoe-lafs-trac-stream] [tahoe-lafs] #1636: Unhandled error in Deferred while uploading (current darcs build)
tahoe-lafs
trac at tahoe-lafs.org
Sun Jan 8 06:19:35 UTC 2012
#1636: Unhandled error in Deferred while uploading (current darcs build)
----------------------------+------------------------
Reporter: killyourtv | Owner: zooko
Type: defect | Status: assigned
Priority: critical | Milestone: 1.9.1
Component: unknown | Version: 1.9.0
Resolution: | Keywords: regression
Launchpad Bug: |
----------------------------+------------------------
Comment (by warner):
I've cleaned up the control flow in retrieve.py, in a series of 6 patches
ending in [5401] / [8db39f0e/git]. I still need to do one more careful
inspection, but I think it's pretty solid now.
On the {{{.get_rref}}} front, I had a thought. Since my long-term goal
with {{{IServer}}} is to remove knowledge of server protocols from the
upload/download code and move it into the {{{IServer}}} class (to
facilitate having multiple backends), why not make it
{{{IServer.callRemote(..)}}} instead of
{{{IServer.get_rref().callRemote(..)}}}? The current {{{IServer}}} class
would just do:
{{{
def callRemote(self, methname, *args, **kwargs):
if self.rref:
return self.rref.callRemote(methname, *args, **kwargs)
else:
return defer.fail(DeadReferenceError())
}}}
It'd be easy to grep for that {{{callRemote}}} later, when it's time to
hoist the abstraction later and turn those calls into {{{putShare}}} or
whatever.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1636#comment:9>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list