#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)
Note: See TracTickets for help on using tickets.