#1646 new defect

nondeterministic failure of mydata.test.test_runner.RunNode.test_introducer — at Initial Version

Reported by: davidsarah Owned by: davidsarah
Priority: major Milestone: undecided
Component: code Version: 1.9.0
Keywords: test heisenbug introducer Cc:
Launchpad Bug:

Description

allmydata.test.test_runner.RunNode.test_introducer sometimes fails with the following error:

  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 ware created during the startup process.

Change History (0)

Note: See TracTickets for help on using tickets.