You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by jx...@apache.org on 2026/03/13 03:31:19 UTC
(helix) branch master updated: Adding timeout for another sub test
This is an automated email from the ASF dual-hosted git repository.
jxue pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/helix.git
The following commit(s) were added to refs/heads/master by this push:
new dda5c3c2a Adding timeout for another sub test
dda5c3c2a is described below
commit dda5c3c2ac370f4bfd84fc4cf7b43d16607d717d
Author: Junkai Xue <jx...@apache.org>
AuthorDate: Thu Mar 12 20:31:12 2026 -0700
Adding timeout for another sub test
---
.../rebalancer/TestInstanceOperation.java | 27 +++++++++++++++++-----
1 file changed, 21 insertions(+), 6 deletions(-)
diff --git a/helix-core/src/test/java/org/apache/helix/integration/rebalancer/TestInstanceOperation.java b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/TestInstanceOperation.java
index e96124475..0379dd0c8 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/rebalancer/TestInstanceOperation.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/rebalancer/TestInstanceOperation.java
@@ -981,6 +981,7 @@ public class TestInstanceOperation extends ZkTestBase {
@Test(dependsOnMethods = "testNodeSwapWithSwapOutInstanceDisabled")
public void testNodeSwapWithSwapOutInstanceOffline() throws Exception {
+ LOG.info("START TestInstanceOperation.testNodeSwapWithSwapOutInstanceOffline()");
System.out.println(
"START TestInstanceOperation.testNodeSwapWithSwapOutInstanceOffline() at " + new Date(
System.currentTimeMillis()));
@@ -990,11 +991,13 @@ public class TestInstanceOperation extends ZkTestBase {
Map<String, String> swapOutInstancesToSwapInInstances = new HashMap<>();
String instanceToSwapOutName = _participants.get(0).getInstanceName();
+ LOG.info("Swap out instance: {}", instanceToSwapOutName);
InstanceConfig instanceToSwapOutInstanceConfig = _gSetupTool.getClusterManagementTool()
.getInstanceConfig(CLUSTER_NAME, instanceToSwapOutName);
// Add instance with InstanceOperation set to SWAP_IN
String instanceToSwapInName = PARTICIPANT_PREFIX + "_" + _nextStartPort;
+ LOG.info("Adding swap in instance: {} for swap out instance: {}", instanceToSwapInName, instanceToSwapOutName);
swapOutInstancesToSwapInInstances.put(instanceToSwapOutName, instanceToSwapInName);
addParticipant(instanceToSwapInName, instanceToSwapOutInstanceConfig.getLogicalId(LOGICAL_ID),
instanceToSwapOutInstanceConfig.getDomainAsMap().get(ZONE),
@@ -1003,37 +1006,49 @@ public class TestInstanceOperation extends ZkTestBase {
Assert.assertEquals(_gSetupTool.getClusterManagementTool().getInstanceConfig(CLUSTER_NAME, instanceToSwapInName)
.getInstanceOperation().getOperation(), InstanceConstants.InstanceOperation.SWAP_IN);
+ LOG.info("Verifying cluster with best possible verifier");
Assert.assertTrue(_bestPossibleClusterVerifier.verifyByPolling());
// Kill the participant
+ LOG.info("Stopping participant: {}", instanceToSwapOutName);
_participants.get(0).syncStop();
+ LOG.info("Verifying cluster after stopping participant");
Assert.assertTrue(_bestPossibleClusterVerifier.verifyByPolling());
// Assert canSwapBeCompleted is true
- Assert.assertTrue(_gSetupTool.getClusterManagementTool()
- .canCompleteSwap(CLUSTER_NAME, instanceToSwapOutName));
+ boolean canCompleteSwap = _gSetupTool.getClusterManagementTool()
+ .canCompleteSwap(CLUSTER_NAME, instanceToSwapOutName);
+ LOG.info("canCompleteSwap result: {}", canCompleteSwap);
+ Assert.assertTrue(canCompleteSwap);
// Validate that the swap out instance is in routing tables and SWAP_IN is not.
validateRoutingTablesInstance(getEVs(), instanceToSwapInName, false);
// Assert completeSwapIfPossible is true
- Assert.assertTrue(_gSetupTool.getClusterManagementTool()
- .completeSwapIfPossible(CLUSTER_NAME, instanceToSwapOutName, false));
+ boolean completeSwap = _gSetupTool.getClusterManagementTool()
+ .completeSwapIfPossible(CLUSTER_NAME, instanceToSwapOutName, false);
+ LOG.info("completeSwapIfPossible result: {}", completeSwap);
+ Assert.assertTrue(completeSwap);
+ LOG.info("Verifying cluster with cluster verifier");
Assert.assertTrue(_clusterVerifier.verifyByPolling());
// Validate that the SWAP_IN instance is now in the routing tables.
validateRoutingTablesInstance(getEVs(), instanceToSwapInName, true);
// Assert that swap out instance is inactive and has no partitions assigned to it.
- Assert.assertFalse(_gSetupTool.getClusterManagementTool()
- .getInstanceConfig(CLUSTER_NAME, instanceToSwapOutName).getInstanceEnabled());
+ boolean isEnabled = _gSetupTool.getClusterManagementTool()
+ .getInstanceConfig(CLUSTER_NAME, instanceToSwapOutName).getInstanceEnabled();
+ LOG.info("Instance {} enabled: {}", instanceToSwapOutName, isEnabled);
+ Assert.assertFalse(isEnabled);
// Validate that the SWAP_IN instance has the same partitions the swap out instance had before
// swap was completed.
+ LOG.info("Validating EV correctness with timeout: {}ms", TIMEOUT);
verifier(() -> (validateEVsCorrect(getEVs(), originalEVs, swapOutInstancesToSwapInInstances,
Collections.emptySet(), ImmutableSet.of(instanceToSwapInName))), TIMEOUT);
+ LOG.info("Completed testNodeSwapWithSwapOutInstanceOffline");
}
@Test(dependsOnMethods = "testNodeSwapWithSwapOutInstanceOffline")