From 54b6f3460a2ce8b3e47284bb0e3273905fb77f13 Mon Sep 17 00:00:00 2001 From: yujun Date: Fri, 17 Nov 2023 19:30:24 +0800 Subject: [PATCH] [fix](fe ut) fix unstable ut DecommissionTest (#27082) --- .../apache/doris/clone/DecommissionTest.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/fe/fe-core/src/test/java/org/apache/doris/clone/DecommissionTest.java b/fe/fe-core/src/test/java/org/apache/doris/clone/DecommissionTest.java index 83393c47f170a75..d97e3a09549dd53 100644 --- a/fe/fe-core/src/test/java/org/apache/doris/clone/DecommissionTest.java +++ b/fe/fe-core/src/test/java/org/apache/doris/clone/DecommissionTest.java @@ -32,7 +32,6 @@ import org.apache.doris.thrift.TStorageMedium; import org.apache.doris.utframe.UtFrameUtils; -import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -45,6 +44,7 @@ import java.util.Map; import java.util.Random; import java.util.UUID; +import java.util.stream.Collectors; public class DecommissionTest { private static final Logger LOG = LogManager.getLogger(TabletReplicaTooSlowTest.class); @@ -152,23 +152,23 @@ public void testDecommissionBackend() throws Exception { } void checkBalance(int tryTimes, int totalReplicaNum, int backendNum) throws Exception { - int beReplicaNum = totalReplicaNum / backendNum; for (int i = 0; i < tryTimes; i++) { List backendIds = Env.getCurrentSystemInfo().getAllBackendIds(true); - if (backendNum != backendIds.size() && i != tryTimes - 1) { - Thread.sleep(1000); - continue; + if (backendNum == backendIds.size()) { + break; } - List tabletNums = Lists.newArrayList(); - for (long beId : backendIds) { - tabletNums.add(Env.getCurrentInvertedIndex().getTabletNumByBackendId(beId)); - } - - Assert.assertEquals("tablet nums = " + tabletNums, backendNum, backendIds.size()); - for (int tabletNum : tabletNums) { - Assert.assertEquals("tablet nums = " + tabletNums, beReplicaNum, tabletNum); - } + Thread.sleep(1000); } + + List backendIds = Env.getCurrentSystemInfo().getAllBackendIds(true); + Assert.assertEquals(backendNum, backendIds.size()); + List tabletNums = backendIds.stream() + .map(beId -> Env.getCurrentInvertedIndex().getTabletNumByBackendId(beId)) + .collect(Collectors.toList()); + + int avgReplicaNum = totalReplicaNum / backendNum; + boolean balanced = tabletNums.stream().allMatch(num -> Math.abs(num - avgReplicaNum) <= 30); + Assert.assertTrue("not balance, tablet nums = " + tabletNums, balanced); } }