This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch branch-4.0
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-4.0 by this push:
new 1dbbdeedde7 branch-4.0: [fix](job scheduler) Record task finish time
on execution failure #66232 (#66270)
1dbbdeedde7 is described below
commit 1dbbdeedde7c59958a7985d2b4b8ff9661b7ad93
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Thu Jul 30 19:38:12 2026 +0800
branch-4.0: [fix](job scheduler) Record task finish time on execution
failure #66232 (#66270)
Cherry-picked from #66232
Co-authored-by: yujun <[email protected]>
---
.../org/apache/doris/job/task/AbstractTask.java | 1 +
.../doris/job/base/AbstractJobStatusTest.java | 23 ++++++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/job/task/AbstractTask.java
b/fe/fe-core/src/main/java/org/apache/doris/job/task/AbstractTask.java
index 4e2ac653cf7..9cf70edb655 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/job/task/AbstractTask.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/job/task/AbstractTask.java
@@ -71,6 +71,7 @@ public abstract class AbstractTask implements Task {
return false;
}
status = TaskStatus.FAILED;
+ setFinishTimeMs(System.currentTimeMillis());
if (!isCallable()) {
return false;
}
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/job/base/AbstractJobStatusTest.java
b/fe/fe-core/src/test/java/org/apache/doris/job/base/AbstractJobStatusTest.java
index faf39164fc3..588aae4c0ca 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/job/base/AbstractJobStatusTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/job/base/AbstractJobStatusTest.java
@@ -66,6 +66,18 @@ class AbstractJobStatusTest {
}
}
+ private static class FailingTask extends DummyTask {
+ FailingTask(long taskId) {
+ super(taskId);
+ setJobId(1L);
+ }
+
+ @Override
+ public void run() throws JobException {
+ throw new JobException("task failed");
+ }
+ }
+
private static class DummyJob extends AbstractJob<DummyTask, Void> {
private final List<DummyTask> history = new ArrayList<>();
@@ -131,6 +143,17 @@ class AbstractJobStatusTest {
Assertions.assertEquals(JobStatus.PENDING, job.getJobStatus());
}
+ @Test
+ void testTaskFailureSetsFinishTime() throws Exception {
+ FailingTask task = new FailingTask(100L);
+
+ task.runTask();
+
+ Assertions.assertEquals(TaskStatus.FAILED, task.getStatus());
+ Assertions.assertNotNull(task.getFinishTimeMs());
+ Assertions.assertEquals("task failed", task.getErrMsg());
+ }
+
@Test
void testPendingFromRunning() throws Exception {
DummyJob job = new DummyJob(JobStatus.RUNNING);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]