From 371955fb505c59f10dd06d006a6cec3a63ae9725 Mon Sep 17 00:00:00 2001 From: Masatake Iwasaki Date: Thu, 14 Jan 2021 16:19:35 +0900 Subject: [PATCH] HDFS-15672. TestBalancerWithMultipleNameNodes#testBalancingBlockpoolsWithBlockPoolPolicy fails on trunk. (#2475) Signed-off-by: Akira Ajisaka (cherry picked from commit 630f8ddd2c72c27b02032ed3cf9dde15745ed605) --- .../TestBalancerWithMultipleNameNodes.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithMultipleNameNodes.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithMultipleNameNodes.java index cafde333944..40afebff499 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithMultipleNameNodes.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithMultipleNameNodes.java @@ -146,15 +146,16 @@ public class TestBalancerWithMultipleNameNodes { } /* wait for one heartbeat */ - static void wait(final ClientProtocol[] clients, + static void wait(final Suite suite, long expectedUsedSpace, long expectedTotalSpace) throws IOException { LOG.info("WAIT expectedUsedSpace=" + expectedUsedSpace + ", expectedTotalSpace=" + expectedTotalSpace); - for(int n = 0; n < clients.length; n++) { + suite.cluster.triggerHeartbeats(); + for(int n = 0; n < suite.clients.length; n++) { int i = 0; for(boolean done = false; !done; ) { - final long[] s = clients[n].getStats(); - done = s[0] == expectedTotalSpace && s[1] == expectedUsedSpace; + final long[] s = suite.clients[n].getStats(); + done = s[0] == expectedTotalSpace && s[1] >= expectedUsedSpace; if (!done) { sleep(100L); if (++i % 100 == 0) { @@ -172,7 +173,7 @@ public class TestBalancerWithMultipleNameNodes { LOG.info("BALANCER 0: totalUsed=" + totalUsed + ", totalCapacity=" + totalCapacity + ", avg=" + avg); - wait(s.clients, totalUsed, totalCapacity); + wait(s, totalUsed, totalCapacity); LOG.info("BALANCER 1"); // get storage reports for relevant blockpools so that we can compare @@ -186,7 +187,7 @@ public class TestBalancerWithMultipleNameNodes { Assert.assertEquals(ExitStatus.SUCCESS.getExitCode(), r); LOG.info("BALANCER 2"); - wait(s.clients, totalUsed, totalCapacity); + wait(s, totalUsed, totalCapacity); LOG.info("BALANCER 3"); int i = 0; @@ -530,7 +531,7 @@ public class TestBalancerWithMultipleNameNodes { LOG.info("RUN_TEST 2: create files"); // fill up the cluster to be 30% full - final long totalUsed = (totalCapacity * s.replication)*3/10; + final long totalUsed = totalCapacity * 3 / 10; final long size = (totalUsed/nNameNodes)/s.replication; for(int n = 0; n < nNameNodes; n++) { createFile(s, n, size);