[
https://issues.apache.org/jira/browse/HDFS-7471?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14247915#comment-14247915
]
Binglin Chang commented on HDFS-7471:
-------------------------------------
The failure is because the datanode is expired, see log:
2014-12-15 12:41:03,938 INFO blockmanagement.TestDatanodeManager
(TestDatanodeManager.java:testNumVersionsReportedCorrect(121)) - Registering
node storageID: someStorageID3896, version: version1, IP address:
someIPsomeStorageID3896:9000
.......
2014-12-15 12:52:29,914 INFO blockmanagement.TestDatanodeManager
(TestDatanodeManager.java:testNumVersionsReportedCorrect(121)) - Registering
node storageID: someStorageID3896, version: version4, IP address:
someIPsomeStorageID3896:9000
the default expire interval is 10:30s , the datanode someIPsomeStorageID3896
register at 2014-12-15 12:41:03 and never send heartbeats, after
11min(2014-12-15 12:52:29) when this datanode reregister, it won't call
decrementVersionCount, so version count well not match
{code}
if(shouldCountVersion(nodeS)) {
decrementVersionCount(nodeS.getSoftwareVersion());
}
{code}
Assuming the currently code logic is right(don't decrementVersionCount when
datanode is expired), I think the simple fix should just increase expire
interval.
Or because the datanode is reregistering, maybe it should not marked as expired?
> TestDatanodeManager#testNumVersionsReportedCorrect occasionally fails
> ---------------------------------------------------------------------
>
> Key: HDFS-7471
> URL: https://issues.apache.org/jira/browse/HDFS-7471
> Project: Hadoop HDFS
> Issue Type: Test
> Components: test
> Affects Versions: 3.0.0
> Reporter: Ted Yu
> Assignee: Binglin Chang
>
> From https://builds.apache.org/job/Hadoop-Hdfs-trunk/1957/ :
> {code}
> FAILED:
> org.apache.hadoop.hdfs.server.blockmanagement.TestDatanodeManager.testNumVersionsReportedCorrect
> Error Message:
> The map of version counts returned by DatanodeManager was not what it was
> expected to be on iteration 237 expected:<0> but was:<1>
> Stack Trace:
> java.lang.AssertionError: The map of version counts returned by
> DatanodeManager was not what it was expected to be on iteration 237
> expected:<0> but was:<1>
> at org.junit.Assert.fail(Assert.java:88)
> at org.junit.Assert.failNotEquals(Assert.java:743)
> at org.junit.Assert.assertEquals(Assert.java:118)
> at org.junit.Assert.assertEquals(Assert.java:555)
> at
> org.apache.hadoop.hdfs.server.blockmanagement.TestDatanodeManager.testNumVersionsReportedCorrect(TestDatanodeManager.java:150)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)