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

abhishek 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 991bf289ed0 Improve error message if task fails to return start time 
(#18685)
991bf289ed0 is described below

commit 991bf289ed0ef1dcf7b901edc22dffa766f4a490
Author: Kashif Faraz <[email protected]>
AuthorDate: Wed Oct 22 14:10:16 2025 +0530

    Improve error message if task fails to return start time (#18685)
---
 .../apache/druid/indexing/kafka/supervisor/KafkaSupervisorTest.java   | 4 ++--
 .../druid/indexing/kinesis/supervisor/KinesisSupervisorTest.java      | 4 ++--
 .../indexing/seekablestream/supervisor/SeekableStreamSupervisor.java  | 4 ++--
 server/src/main/java/org/apache/druid/rpc/ServiceClientImpl.java      | 1 +
 4 files changed, 7 insertions(+), 6 deletions(-)

diff --git 
a/extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/supervisor/KafkaSupervisorTest.java
 
b/extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/supervisor/KafkaSupervisorTest.java
index 880e1f555a1..f3f01cc5071 100644
--- 
a/extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/supervisor/KafkaSupervisorTest.java
+++ 
b/extensions-core/kafka-indexing-service/src/test/java/org/apache/druid/indexing/kafka/supervisor/KafkaSupervisorTest.java
@@ -3034,8 +3034,8 @@ public class KafkaSupervisorTest extends EasyMockSupport
       EasyMock.expect(taskClient.getStatusAsync(task.getId()))
               .andReturn(Futures.immediateFuture(Status.NOT_STARTED));
       EasyMock.expect(taskClient.getStartTimeAsync(task.getId()))
-              .andReturn(Futures.immediateFailedFuture(new 
RuntimeException()));
-      taskQueue.shutdown(task.getId(), "Task [%s] failed to return start time, 
killing task", task.getId());
+              .andReturn(Futures.immediateFailedFuture(new 
RuntimeException("killed")));
+      taskQueue.shutdown(task.getId(), "Failed to return start time: %s", 
"killed");
     }
     EasyMock.replay(taskStorage, taskClient, taskQueue);
 
diff --git 
a/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/supervisor/KinesisSupervisorTest.java
 
b/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/supervisor/KinesisSupervisorTest.java
index ea528a68a01..1fd50c13545 100644
--- 
a/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/supervisor/KinesisSupervisorTest.java
+++ 
b/extensions-core/kinesis-indexing-service/src/test/java/org/apache/druid/indexing/kinesis/supervisor/KinesisSupervisorTest.java
@@ -2183,8 +2183,8 @@ public class KinesisSupervisorTest extends EasyMockSupport
       EasyMock.expect(taskClient.getStatusAsync(task.getId()))
               
.andReturn(Futures.immediateFuture(SeekableStreamIndexTaskRunner.Status.NOT_STARTED));
       EasyMock.expect(taskClient.getStartTimeAsync(task.getId()))
-              .andReturn(Futures.immediateFailedFuture(new 
RuntimeException()));
-      taskQueue.shutdown(task.getId(), "Task [%s] failed to return start time, 
killing task", task.getId());
+              .andReturn(Futures.immediateFailedFuture(new 
RuntimeException("killed")));
+      taskQueue.shutdown(task.getId(), "Failed to return start time: %s", 
"killed");
     }
     EasyMock.replay(taskStorage, taskClient, taskQueue);
 
diff --git 
a/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/SeekableStreamSupervisor.java
 
b/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/SeekableStreamSupervisor.java
index 312a6480e25..0faa0b84134 100644
--- 
a/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/SeekableStreamSupervisor.java
+++ 
b/indexing-service/src/main/java/org/apache/druid/indexing/seekablestream/supervisor/SeekableStreamSupervisor.java
@@ -3282,8 +3282,8 @@ public abstract class 
SeekableStreamSupervisor<PartitionIdType, SequenceOffsetTy
       // Ignore return value; but kill tasks that failed to return anything at 
all.
       if (results.get(i).isError()) {
         String taskId = futureTaskIds.get(i);
-        log.noStackTrace().warn(results.get(i).error(), "Task [%s] failed to 
return start time, killing task", taskId);
-        killTask(taskId, "Task [%s] failed to return start time, killing 
task", taskId);
+        log.noStackTrace().warn(results.get(i).error(), "Killing task[%s] as 
it failed to return start time.", taskId);
+        killTask(taskId, "Failed to return start time: %s", 
results.get(i).error().getMessage());
       }
     }
   }
diff --git a/server/src/main/java/org/apache/druid/rpc/ServiceClientImpl.java 
b/server/src/main/java/org/apache/druid/rpc/ServiceClientImpl.java
index a75a8f6a77d..ca7ae0371c6 100644
--- a/server/src/main/java/org/apache/druid/rpc/ServiceClientImpl.java
+++ b/server/src/main/java/org/apache/druid/rpc/ServiceClientImpl.java
@@ -206,6 +206,7 @@ public class ServiceClientImpl implements ServiceClient
                   }
                   catch (Throwable t) {
                     // It's a bug if this happens. The purpose of this line is 
to help us debug what went wrong.
+                    log.error(t, "Service[%s] handler exited unexpected", 
serviceName);
                     retVal.setException(new RpcException(t, "Service [%s] 
handler exited unexpectedly", serviceName));
                   }
                 }


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

Reply via email to