[tahoe-lafs-trac-stream] [tahoe-lafs] #1382: immutable peer selection refactoring and enhancements
tahoe-lafs
trac at tahoe-lafs.org
Mon Nov 4 22:44:30 UTC 2013
#1382: immutable peer selection refactoring and enhancements
-------------------------+-------------------------------------------------
Reporter: kevan | Owner: markberger
Type: | Status: new
enhancement | Milestone: 1.11.0
Priority: major | Version: 1.8.2
Component: code- | Keywords: review-needed servers-of-happiness
peerselection | blocks-release
Resolution: |
Launchpad Bug: |
-------------------------+-------------------------------------------------
Comment (by markberger):
I've been working on the suggestions we discussed during last week's dev
chat.
It turns out a lot of the query counting mechanics in place on my branch
are incorrect. I'm shocked that it actually passes all of the tests in its
current state. Also the current version tries to place shares on servers
even when we have enough information to determine that a happy upload
cannot occur.
I've started to correct these issues, as well as remove the redundant
loop, in a branch [https://github.com/markberger/tahoe-
lafs/tree/1382-rewrite-2 here].
For the above branch, when `tracker.ask_about_existing_shares()` is called
on `FakeStorageServer`, I receive the following error for each tracker:
{{{
[Failure instance: Traceback: <type 'exceptions.AttributeError'>:
FakeStorageServer instance has no attribute 'get_buckets'
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/base.py:800:runUntilCurrent
/Users/markberger/Code/tahoe-lafs/support/lib/python2.7/site-
packages/foolscap-0.6.4-py2.7.egg/foolscap/eventual.py:26:_turn
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/defer.py:368:callback
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/defer.py:464:_startRunCallbacks
--- <exception caught here> ---
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/twisted/internet/defer.py:551:_runCallbacks
/Users/markberger/Code/tahoe-
lafs/src/allmydata/test/test_upload.py:124:<lambda>
/Users/markberger/Code/tahoe-
lafs/src/allmydata/test/test_upload.py:121:_call
]
}}}
Sadly, this error does not appear when you run `python setup.py trial -s
allmydata.test.test_upload`. It simply fails, stating that the happiness
error messages are wrong. To reproduce this error message, `import pdb`
and call `pdb.set_trace()` in `_handle_existing_response` within
`immutable/upload.py`.
I'm not sure why I'm receiving this error because the same function is
called in 1.10. Additionally, there is some code that should give
`get_buckets` a proper response [https://github.com/tahoe-lafs/tahoe-
lafs/blob/77029991070fef8f6a89fbb8407cc238de2defeb/src/allmydata/test/no_network.py#L105
here].
If anyone has some advice on how to fix this error, I would appreciate the
help. I haven't been able to figure this bug out.
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1382#comment:50>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list