diff --git a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java index 59deb39e43..bc0dd09815 100644 --- a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java +++ b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteThread.java @@ -415,6 +415,9 @@ public class WorkflowExecuteThread { iTaskProcessor.action(TaskAction.RUN); if (iTaskProcessor.taskInstance().getState().typeIsFinished()) { + if (iTaskProcessor.taskInstance().getState() != task.getState()) { + task.setState(iTaskProcessor.taskInstance().getState()); + } taskFinished(task); } return true; @@ -455,7 +458,10 @@ public class WorkflowExecuteThread { killAllTasks(); } } + } else if (taskInstance.getState().typeIsFinished()) { + completeTaskMap.put(taskInstance.getTaskCode(), taskInstance.getId()); } + this.updateProcessInstanceState(); }