[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