Author: junping_du Date: Thu Dec 19 09:21:19 2013 New Revision: 1552256 URL: http://svn.apache.org/r1552256 Log: HDFS-5540. Fix intermittent failure in TestBlocksWithNotEnoughRacks. (Binglin Chang via junping_du)
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1552256&r1=1552255&r2=1552256&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Thu Dec 19 09:21:19 2013 @@ -757,6 +757,9 @@ Release 2.4.0 - UNRELEASED HDFS-5663 make the retry time and interval value configurable in openInfo() (Liang Xie via stack) + HDFS-5540. Fix intermittent failure in TestBlocksWithNotEnoughRacks. + (Binglin Chang via junping_du) + OPTIMIZATIONS HDFS-5239. Allow FSNamesystem lock fairness to be configurable (daryn) Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java?rev=1552256&r1=1552255&r2=1552256&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java Thu Dec 19 09:21:19 2013 @@ -347,9 +347,15 @@ public class DFSTestUtil { // Swallow exceptions } System.out.println("Waiting for "+corruptRepls+" corrupt replicas"); - repls = ns.getBlockManager().numCorruptReplicas(b.getLocalBlock()); count++; - Thread.sleep(1000); + // check more often so corrupt block reports are not easily missed + for (int i = 0; i < 10; i++) { + repls = ns.getBlockManager().numCorruptReplicas(b.getLocalBlock()); + Thread.sleep(100); + if (repls == corruptRepls) { + break; + } + } } if (count == ATTEMPTS) { throw new TimeoutException("Timed out waiting for corrupt replicas."