[ 
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)

Reply via email to