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

gianm 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 3091a97deba fix: MSQ workers closing each other in tests. (#19339)
3091a97deba is described below

commit 3091a97debaa9a761497b47aaf37282d8593823f
Author: Gian Merlino <[email protected]>
AuthorDate: Fri Apr 17 15:14:37 2026 -0700

    fix: MSQ workers closing each other in tests. (#19339)
    
    The MSQTestWorkerClient has logic in close() to cancel any still-running
    workers. This logic should only run on the controller version of the
    worker client, not the worker-to-worker client. When it runs on the
    worker-to-worker client, it can cause spurious test failures.
---
 .../org/apache/druid/msq/test/MSQTestControllerContext.java    |  2 +-
 .../java/org/apache/druid/msq/test/MSQTestWorkerClient.java    | 10 ++++++++--
 .../java/org/apache/druid/msq/test/MSQTestWorkerContext.java   |  2 +-
 .../druid/msq/test/TestDartControllerContextFactoryImpl.java   |  2 +-
 4 files changed, 11 insertions(+), 5 deletions(-)

diff --git 
a/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestControllerContext.java
 
b/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestControllerContext.java
index e4b2850a74b..5bae51c53e3 100644
--- 
a/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestControllerContext.java
+++ 
b/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestControllerContext.java
@@ -470,7 +470,7 @@ public class MSQTestControllerContext implements 
ControllerContext, DartControll
   @Override
   public WorkerClient newWorkerClient()
   {
-    return new MSQTestWorkerClient(inMemoryWorkers, mapper);
+    return new MSQTestWorkerClient(inMemoryWorkers, mapper, true);
   }
 
   @Override
diff --git 
a/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestWorkerClient.java
 
b/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestWorkerClient.java
index 711047e78ec..52c06afff97 100644
--- 
a/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestWorkerClient.java
+++ 
b/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestWorkerClient.java
@@ -49,12 +49,18 @@ public class MSQTestWorkerClient implements WorkerClient
 
   protected final Map<String, WorkerRunRef> inMemoryWorkers;
   private final ObjectMapper objectMapper;
+  private final boolean closeWorkersOnClose;
   private final AtomicBoolean closed = new AtomicBoolean();
 
-  public MSQTestWorkerClient(Map<String, WorkerRunRef> inMemoryWorkers, 
ObjectMapper objectMapper)
+  public MSQTestWorkerClient(
+      Map<String, WorkerRunRef> inMemoryWorkers,
+      ObjectMapper objectMapper,
+      boolean closeWorkersOnClose
+  )
   {
     this.inMemoryWorkers = inMemoryWorkers;
     this.objectMapper = objectMapper;
+    this.closeWorkersOnClose = closeWorkersOnClose;
   }
 
   @Override
@@ -191,7 +197,7 @@ public class MSQTestWorkerClient implements WorkerClient
   @Override
   public void close()
   {
-    if (closed.compareAndSet(false, true)) {
+    if (closed.compareAndSet(false, true) && closeWorkersOnClose) {
       inMemoryWorkers.forEach((k, v) -> v.cancel());
     }
   }
diff --git 
a/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestWorkerContext.java
 
b/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestWorkerContext.java
index fc08fd122eb..a926aabee6f 100644
--- 
a/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestWorkerContext.java
+++ 
b/multi-stage-query/src/test/java/org/apache/druid/msq/test/MSQTestWorkerContext.java
@@ -161,7 +161,7 @@ public class MSQTestWorkerContext implements WorkerContext
   @Override
   public WorkerClient makeWorkerClient()
   {
-    return new MSQTestWorkerClient(inMemoryWorkers, mapper);
+    return new MSQTestWorkerClient(inMemoryWorkers, mapper, false);
   }
 
   @Override
diff --git 
a/multi-stage-query/src/test/java/org/apache/druid/msq/test/TestDartControllerContextFactoryImpl.java
 
b/multi-stage-query/src/test/java/org/apache/druid/msq/test/TestDartControllerContextFactoryImpl.java
index c965c297685..6032afc853b 100644
--- 
a/multi-stage-query/src/test/java/org/apache/druid/msq/test/TestDartControllerContextFactoryImpl.java
+++ 
b/multi-stage-query/src/test/java/org/apache/druid/msq/test/TestDartControllerContextFactoryImpl.java
@@ -116,7 +116,7 @@ public class TestDartControllerContextFactoryImpl extends 
DartControllerContextF
 
     public DartTestWorkerClient()
     {
-      super(workerMap, jsonMapper);
+      super(workerMap, jsonMapper, true);
     }
 
     @Override


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

Reply via email to