Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
3.0.0-alpha2
-
None
-
None
-
Reviewed
Description
The test TestMaintenanceState#testWithNNAndDNRestart fails in trunk. The stack info( https://builds.apache.org/job/PreCommit-HDFS-Build/18423/testReport/ ):
java.lang.AssertionError: expected null, but was:<Wrong number of replicas for block BP-1367163238-172.17.0.2-1487836532907:blk_1073741825_1001: expected 3, got 2 ,DatanodeInfoWithStorage[127.0.0.1:42649,DS-c499e6ef-ce14-428b-baef-8cf2a122b248,DISK],DatanodeInfoWithStorage[127.0.0.1:40774,DS-cc484c09-6e32-4804-a337-2871f37b62e1,DISK],pending block # 1 ,under replicated # 0 ,> at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.failNotNull(Assert.java:664) at org.junit.Assert.assertNull(Assert.java:646) at org.junit.Assert.assertNull(Assert.java:656) at org.apache.hadoop.hdfs.TestMaintenanceState.testWithNNAndDNRestart(TestMaintenanceState.java:731)
The failure seems due to pending block has not been replicated. We can bump the retry times since sometimes the cluster would be busy. Also we can use GenericTestUtils#waitFor to simplified the current compared logic.