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")