Opened at 2011-12-29T03:00:14Z
Last modified at 2011-12-29T03:02:26Z
#1646 new defect
nondeterministic failure of mydata.test.test_runner.RunNode.test_introducer
Reported by: | davidsarah | Owned by: | davidsarah |
---|---|---|---|
Priority: | major | Milestone: | undecided |
Component: | code | Version: | 1.9.0 |
Keywords: | test heisenbug introducer | Cc: | |
Launchpad Bug: |
Description (last modified by davidsarah)
allmydata.test.test_runner.RunNode.test_introducer sometimes fails with the following error (found on sickness' buildslave):
RunNode test_introducer ... Traceback (most recent call last): File "/home/bb-tahoe/bb-tahoe/sickness-openbsd-x86-py2.7/build/src/allmydata/test/test_runner.py", line 441, in _check_same_furl_and_port self.failUnlessEqual(self.furl, fileutil.read(INTRODUCER_FURL_FILE)) twisted.trial.unittest.FailTest: not equal: a = '' b = 'pb://w6x2bwklda63sm26ki7tqhieri5fl3fz@192.168.0.120:30549,127.0.0.1:30549/introducer\n' [FAIL]
I believe the problem is due to an incorrect assumption in the test, that introducer.furl will be written before node.url. In fact they may be written in either order, because the init_introducer method of IntroducerNode writes introducer.furl concurrently with the init_web method of the same class (indirectly) writing node.url.
test_runner.py is prone to race conditions because we don't have a particularly reliable way to determine that a node has started, and so these tests rely on implementation details of when files are created during the startup process.
Change History (1)
comment:1 Changed at 2011-12-29T03:02:26Z by davidsarah
- Description modified (diff)