This is an automated email from the ASF dual-hosted git repository.

FrankChen021 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new 9a36f0ec70a fix flaky 
MSQWorkerFaultToleranceTest.test_cancelledWorker_isRetried (#20803)
9a36f0ec70a is described below

commit 9a36f0ec70aed246189160b76567f22948106c3e
Author: Akshat Lakhera <[email protected]>
AuthorDate: Sun Nov 1 08:10:26 2026 +0530

    fix flaky MSQWorkerFaultToleranceTest.test_cancelledWorker_isRetried 
(#20803)
    
    Signed-off-by: Akshat Lakhera <[email protected]>
---
 .../embedded/msq/MSQWorkerFaultToleranceTest.java        | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/msq/MSQWorkerFaultToleranceTest.java
 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/msq/MSQWorkerFaultToleranceTest.java
index 290c06e89cd..de4522e53f1 100644
--- 
a/embedded-tests/src/test/java/org/apache/druid/testing/embedded/msq/MSQWorkerFaultToleranceTest.java
+++ 
b/embedded-tests/src/test/java/org/apache/druid/testing/embedded/msq/MSQWorkerFaultToleranceTest.java
@@ -20,11 +20,13 @@
 package org.apache.druid.testing.embedded.msq;
 
 import org.apache.druid.guice.ClusterTestingModule;
+import org.apache.druid.indexing.common.task.TaskMetrics;
 import org.apache.druid.java.util.common.StringUtils;
 import org.apache.druid.java.util.emitter.service.ServiceMetricEvent;
 import org.apache.druid.query.DruidMetrics;
 import org.apache.druid.query.http.SqlTaskStatus;
 import org.apache.druid.rpc.indexing.OverlordClient;
+import org.apache.druid.server.metrics.LatchableEmitter;
 import org.apache.druid.testing.cluster.task.FaultyOverlordClient;
 import org.apache.druid.testing.embedded.EmbeddedBroker;
 import org.apache.druid.testing.embedded.EmbeddedCoordinator;
@@ -50,6 +52,8 @@ import java.util.concurrent.TimeUnit;
  */
 public class MSQWorkerFaultToleranceTest extends EmbeddedClusterTestBase
 {
+  private static final long CONTROLLER_RETRY_TIMEOUT_MILLIS = 
TimeUnit.SECONDS.toMillis(60);
+
   private final EmbeddedBroker broker = new EmbeddedBroker();
   private final EmbeddedOverlord overlord = new EmbeddedOverlord();
   private final EmbeddedCoordinator coordinator = new EmbeddedCoordinator();
@@ -137,7 +141,17 @@ public class MSQWorkerFaultToleranceTest extends 
EmbeddedClusterTestBase
       faultyIndexer.stop();
     }
 
-    // Verify that the controller task eventually succeeds
+    // The controller must detect the failed worker and relaunch it on the 
functional Indexer,
+    // which can take much longer than the default 10s wait on a busy machine
+    final LatchableEmitter.EventMatcher controllerFinished = new 
LatchableEmitter.EventMatcher()
+        .hasMetricName(TaskMetrics.RUN_DURATION)
+        .hasDimension(DruidMetrics.TASK_ID, taskStatus.getTaskId());
+    overlord.latchableEmitter().waitForEvent(
+        event -> event instanceof ServiceMetricEvent && 
controllerFinished.test((ServiceMetricEvent) event),
+        CONTROLLER_RETRY_TIMEOUT_MILLIS
+    );
+
+    // Verify that the controller task succeeds
     cluster.callApi().waitForTaskToSucceed(taskStatus.getTaskId(), 
overlord.latchableEmitter());
     cluster.callApi().waitForAllSegmentsToBeAvailable(dataSource, coordinator, 
broker);
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to