Author: junping_du Date: Thu Dec 19 10:10:24 2013 New Revision: 1552278 URL: http://svn.apache.org/r1552278 Log: Merge 1552256 from trunk: HDFS-5540. Fix intermittent failure in TestBlocksWithNotEnoughRacks. (Binglin Chang via junping_du)
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1552278&r1=1552277&r2=1552278&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original) +++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Thu Dec 19 10:10:24 2013 @@ -184,6 +184,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/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java?rev=1552278&r1=1552277&r2=1552278&view=diff ============================================================================== --- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java (original) +++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/DFSTestUtil.java Thu Dec 19 10:10:24 2013 @@ -364,9 +364,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."