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 <[email protected]>
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")