hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Helmling (JIRA)" <j...@apache.org>
Subject [jira] Created: (HBASE-3252) TestZooKeeperNodeTracker sometimes fails due to a race condition in test notification
Date Fri, 19 Nov 2010 20:31:13 GMT
TestZooKeeperNodeTracker sometimes fails due to a race condition in test notification

                 Key: HBASE-3252
                 URL: https://issues.apache.org/jira/browse/HBASE-3252
             Project: HBase
          Issue Type: Bug
    Affects Versions: 0.90.0
            Reporter: Gary Helmling
            Priority: Minor

TestZooKeeperNodeTracker sometimes fails with errors like the following:

Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.738 sec <<< FAILURE!
testNodeTracker(org.apache.hadoop.hbase.zookeeper.TestZooKeeperNodeTracker)  Time elapsed:
0.17 sec  <<< FAILURE!
        at org.junit.Assert.fail(Assert.java:91)
        at org.junit.Assert.assertTrue(Assert.java:43)
        at org.junit.Assert.assertTrue(Assert.java:54)
        at org.apache.hadoop.hbase.zookeeper.TestZooKeeperNodeTracker.testNodeTracker(TestZooKeeperNodeTracker.java:203)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

Running the test locally this can happen as much as 25-50% of the time.

It looks like this is due to a basic race condition in the way the test is structured.  The
test code uses:

    // Wait for zk event to be processed

But, since zkListener is instantiated (and registered with ZooKeeperWatcher) prior to secondTracker
(which is always the source of the failure), zkListener will be notified first of the change
and there is a race condition between the subsequent test assertions and the secondTracker

Attaching a patch with a simple fix of just instantiating secondTracker prior to zkListener
so that it's registered (and notified) first.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message