Skip to content

Commit 288219d

Browse files
author
jiajunwang
committed
Fix TestMixedModeAutoRebalance.java
1 parent 026cfb5 commit 288219d

1 file changed

Lines changed: 19 additions & 8 deletions

File tree

helix-core/src/test/java/org/apache/helix/integration/rebalancer/TestMixedModeAutoRebalance.java

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.apache.helix.ConfigAccessor;
3030
import org.apache.helix.HelixDataAccessor;
3131
import org.apache.helix.NotificationContext;
32+
import org.apache.helix.TestHelper;
3233
import org.apache.helix.common.ZkTestBase;
3334
import org.apache.helix.controller.rebalancer.strategy.CrushEdRebalanceStrategy;
3435
import org.apache.helix.controller.rebalancer.strategy.CrushRebalanceStrategy;
@@ -69,7 +70,6 @@ public class TestMixedModeAutoRebalance extends ZkTestBase {
6970
private int _replica = 3;
7071
private ZkHelixClusterVerifier _clusterVerifier;
7172
private ConfigAccessor _configAccessor;
72-
private HelixDataAccessor _dataAccessor;
7373

7474
@BeforeClass
7575
public void beforeClass() throws Exception {
@@ -98,7 +98,6 @@ public void beforeClass() throws Exception {
9898
enablePersistBestPossibleAssignment(_gZkClient, CLUSTER_NAME, true);
9999

100100
_configAccessor = new ConfigAccessor(_gZkClient);
101-
_dataAccessor = new ZKHelixDataAccessor(CLUSTER_NAME, _baseAccessor);
102101
}
103102

104103
@DataProvider(name = "stateModels")
@@ -152,7 +151,7 @@ public void testUserDefinedPreferenceListsInFullAuto(String stateModel, boolean
152151
new ResourceConfig.Builder(_db).setPreferenceLists(userDefinedPreferenceLists).build();
153152
_configAccessor.setResourceConfig(CLUSTER_NAME, _db, resourceConfig);
154153

155-
Assert.assertTrue(_clusterVerifier.verify(1000));
154+
Assert.assertTrue(_clusterVerifier.verify(3000));
156155
verifyUserDefinedPreferenceLists(_db, userDefinedPreferenceLists, userDefinedPartitions);
157156

158157
while (userDefinedPartitions.size() > 0) {
@@ -161,7 +160,9 @@ public void testUserDefinedPreferenceListsInFullAuto(String stateModel, boolean
161160
nonUserDefinedPartitions.removeAll(userDefinedPartitions);
162161

163162
removePartitionFromUserDefinedList(_db, userDefinedPartitions);
164-
Assert.assertTrue(_clusterVerifier.verify(1000));
163+
// TODO: Remove wait once we enable the BestPossibleExternalViewVerifier for the WAGED rebalancer.
164+
Thread.sleep(1000);
165+
Assert.assertTrue(_clusterVerifier.verify(3000));
165166
verifyUserDefinedPreferenceLists(_db, userDefinedPreferenceLists, userDefinedPartitions);
166167
verifyNonUserDefinedAssignment(_db, originIS, nonUserDefinedPartitions);
167168
}
@@ -199,7 +200,19 @@ public void testUserDefinedPreferenceListsInFullAutoWithErrors() throws Exceptio
199200
new ResourceConfig.Builder(_db).setPreferenceLists(userDefinedPreferenceLists).build();
200201
_configAccessor.setResourceConfig(CLUSTER_NAME, _db, resourceConfig);
201202

202-
Thread.sleep(1000);
203+
TestHelper.verify(() -> {
204+
ExternalView ev =
205+
_gSetupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, _db);
206+
if (ev != null) {
207+
for (String partition : ev.getPartitionSet()) {
208+
Map<String, String> stateMap = ev.getStateMap(partition);
209+
if (stateMap.values().contains("ERROR")) {
210+
return true;
211+
}
212+
}
213+
}
214+
return false;
215+
}, 3000);
203216
ExternalView ev =
204217
_gSetupTool.getClusterManagementTool().getResourceExternalView(CLUSTER_NAME, _db);
205218
IdealState is = _gSetupTool.getClusterManagementTool().getResourceIdealState(CLUSTER_NAME, _db);
@@ -245,14 +258,12 @@ private void removePartitionFromUserDefinedList(String db, List<String> userDefi
245258
resourceConfig.setPreferenceLists(lists);
246259
userDefinedPartitions.remove(0);
247260
_configAccessor.setResourceConfig(CLUSTER_NAME, db, resourceConfig);
248-
249-
//TODO: Touch IS, remove this once Helix controller is listening on resource config changes.
250-
RebalanceScheduler.invokeRebalance(_dataAccessor, db);
251261
}
252262

253263
@AfterMethod
254264
public void afterMethod() {
255265
_gSetupTool.getClusterManagementTool().dropResource(CLUSTER_NAME, _db);
266+
getClusterVerifier().verify(5000);
256267
}
257268

258269
@AfterClass

0 commit comments

Comments
 (0)