[
https://issues.apache.org/jira/browse/HBASE-3252?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Helmling updated HBASE-3252:
---------------------------------
Attachment: HBASE-3252.patch
Trivial patch to make the test reliably pass. Just moves secondTracker
registration ahead of zkListener.
> 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
> Attachments: HBASE-3252.patch
>
>
> TestZooKeeperNodeTracker sometimes fails with errors like the following:
> {noformat}
> 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!
> java.lang.AssertionError:
> 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)
> {noformat}
> 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:
> {code}
> // Wait for zk event to be processed
> zkListener.waitForDataChange();
> {code}
> 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 notification.
> 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.