mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-18 17:00:24 +00:00
test/common.py: fix race condition waiting for the helper connection
The wait_for_connections() method, which is used at the start of test_system to make sure that all the clients are connected to all the servers, did not also wait for clients to be connected to their Helpers. Every once in a while, the helper connection would take a bit longer, and then test_system.SystemTest.test_filesystem._test_web._got_welcome_helper would fail, because we'd check for a helper connection before it was ready. The fix is to modify wait_for_connections's polling predicate to look for helper connections (if configured) as well as the regular introducer- and server- connections. Tested by temporarily adding a large (30s) delay to the connectTo() call in Uploader.startService, simulating a long helper connection-establishment delay. This makes the test fail consistently. Then I fixed wait_for_connections(), and the test passed (slowly). Then I removed the delay. Closes #1467
This commit is contained in:
parent
daa24bce8b
commit
b2dcbbb62d
@ -675,12 +675,12 @@ class SystemTestMixin(pollmixin.PollMixin, testutil.StallMixin):
|
||||
sb = c.get_storage_broker()
|
||||
if len(sb.get_connected_servers()) != self.numclients:
|
||||
return False
|
||||
up = c.getServiceNamed("uploader")
|
||||
if up._helper_furl and not up._helper:
|
||||
return False
|
||||
return True
|
||||
|
||||
def wait_for_connections(self, ignored=None):
|
||||
# TODO: replace this with something that takes a list of peerids and
|
||||
# fires when they've all been heard from, instead of using a count
|
||||
# and a threshold
|
||||
return self.poll(self._check_connections, timeout=200)
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user