id summary reporter owner description type status priority milestone component version resolution keywords cc launchpad_bug 1646 nondeterministic failure of mydata.test.test_runner.RunNode.test_introducer davidsarah 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 [source:src/allmydata/introducer/server.py 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." defect new major undecided code 1.9.0 test heisenbug introducer