Repository: hadoop Updated Branches: refs/heads/trunk 5e7cfdca7 -> 3f5108723
HDFS-11682. TestBalancer.testBalancerWithStripedFile is flaky. (lei) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/3f510872 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/3f510872 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/3f510872 Branch: refs/heads/trunk Commit: 3f5108723c6272d2fded8d3563c4b793e1d88f8b Parents: 5e7cfdc Author: Lei Xu <[email protected]> Authored: Thu Jun 15 11:04:50 2017 -0700 Committer: Lei Xu <[email protected]> Committed: Thu Jun 15 11:04:50 2017 -0700 ---------------------------------------------------------------------- .../hdfs/server/balancer/TestBalancer.java | 44 ++++++++++++++------ 1 file changed, 31 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/3f510872/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java index 016a233..ec9c39a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java @@ -938,19 +938,37 @@ public class TestBalancer { throws Exception { waitForHeartBeat(totalUsedSpace, totalCapacity, client, cluster); - // start rebalancing - Collection<URI> namenodes = DFSUtil.getInternalNsRpcUris(conf); - final int r = runBalancer(namenodes, p, conf); - if (conf.getInt(DFSConfigKeys.DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_KEY, - DFSConfigKeys.DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_DEFAULT) ==0) { - assertEquals(ExitStatus.NO_MOVE_PROGRESS.getExitCode(), r); - return; - } else { - assertEquals(ExitStatus.SUCCESS.getExitCode(), r); + int retry = 5; + while (retry > 0) { + // start rebalancing + Collection<URI> namenodes = DFSUtil.getInternalNsRpcUris(conf); + final int run = runBalancer(namenodes, p, conf); + if (conf.getInt( + DFSConfigKeys.DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_KEY, + DFSConfigKeys.DFS_DATANODE_BALANCE_MAX_NUM_CONCURRENT_MOVES_DEFAULT) + == 0) { + assertEquals(ExitStatus.NO_MOVE_PROGRESS.getExitCode(), run); + return; + } else { + assertEquals(ExitStatus.SUCCESS.getExitCode(), run); + } + waitForHeartBeat(totalUsedSpace, totalCapacity, client, cluster); + LOG.info(" ."); + try { + waitForBalancer(totalUsedSpace, totalCapacity, client, cluster, p, + excludedNodes); + } catch (TimeoutException e) { + // See HDFS-11682. NN may not get heartbeat to reflect the newest + // block changes. + retry--; + if (retry == 0) { + throw e; + } + LOG.warn("The cluster has not balanced yet, retry..."); + continue; + } + break; } - waitForHeartBeat(totalUsedSpace, totalCapacity, client, cluster); - LOG.info(" ."); - waitForBalancer(totalUsedSpace, totalCapacity, client, cluster, p, excludedNodes); } private static int runBalancer(Collection<URI> namenodes, @@ -1942,7 +1960,7 @@ public class TestBalancer { doTestBalancerWithStripedFile(conf); } - @Test(timeout = 100000) + @Test(timeout = 200000) public void testBalancerWithStripedFile() throws Exception { Configuration conf = new Configuration(); initConfWithStripe(conf); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
