[
https://issues.apache.org/jira/browse/HBASE-7866?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13580229#comment-13580229
]
ramkrishna.s.vasudevan commented on HBASE-7866:
-----------------------------------------------
Ok i found the root cause of the issue.
In the 3 runs that has failed the failure is from 'if' condition and the other
2 times it is from 'else' condition.
{code}
if (nodeCreated) {
assertFalse(ZKUtil.checkExists(regionServer.getZooKeeper(), node) ==
-1);
} else {
assertTrue(ZKUtil.checkExists(regionServer.getZooKeeper(), node) == -1);
}
{code}
The reason is because of 2 things
-> The createTable though it has added the META entry but still the znode
deletion from RS_ZK_OPENED state has not happened.
-> Another is because the testcase throws an IOException either from
transitionNodeSplitting or createNodeSplitting based on the condition.
And the testcases catches the IOException and acts on it.
Consider the case where we are in the 'if' conditon ie. we want the nodeCreated
to be true.
Now the test tries to create the SPLIT node as part of SplitTransaction.
Because the OPENED node is still there and it has not been deleted by the AM,
the creation of the znode in SPLIT state actually fails. But the testcase
tries to catch the exception and tries to assert the existence of the znode.
Ideally it tries to catch the exception that should be have come from
transitionNodeSplitting (). Now before he could assert AM deletes the znode in
OPENED state.
So the assert in 'if' fails.
Similar should be the case with 'else' which i have not analysed fully.
@Lars
I will come up with a patch for this and may be some modifications to the
testcase also.
> TestSplitTransactionOnCluster.testSplitBeforeSettingSplittingInZK failed 3
> times in a row
> -----------------------------------------------------------------------------------------
>
> Key: HBASE-7866
> URL: https://issues.apache.org/jira/browse/HBASE-7866
> Project: HBase
> Issue Type: Bug
> Reporter: Lars Hofhansl
> Fix For: 0.96.0, 0.94.6
>
>
> Looks like the jenkins machines are flaky/slow again, causing this test to
> fail. Same stacktrace all three times:
> {code}
> java.lang.AssertionError
> at org.junit.Assert.fail(Assert.java:92)
> at org.junit.Assert.assertTrue(Assert.java:43)
> at org.junit.Assert.assertTrue(Assert.java:54)
> at
> org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster.testSplitBeforeSettingSplittingInZK(TestSplitTransactionOnCluster.java:656)
> at
> org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster.testSplitBeforeSettingSplittingInZK(TestSplitTransactionOnCluster.java:608)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira