diff --git a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteRunnable.java b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteRunnable.java index 32d1724b15..1834e413f8 100644 --- a/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteRunnable.java +++ b/dolphinscheduler-master/src/main/java/org/apache/dolphinscheduler/server/master/runner/WorkflowExecuteRunnable.java @@ -592,7 +592,9 @@ public class WorkflowExecuteRunnable implements Callable { return false; } - if (processInstance.getState() == ExecutionStatus.READY_STOP) { + // when the serial complement is executed, the next complement instance is created, + // and this method does not need to be executed when the parallel complement is used. + if (processInstance.getState() == ExecutionStatus.READY_STOP || !processInstance.getState().typeIsFinished()) { return false; } diff --git a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/BlockingTaskTest.java b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/BlockingTaskTest.java index 602afd987f..64bc291152 100644 --- a/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/BlockingTaskTest.java +++ b/dolphinscheduler-master/src/test/java/org/apache/dolphinscheduler/server/master/BlockingTaskTest.java @@ -266,5 +266,4 @@ public class BlockingTaskTest { ExecutionStatus status = processInstance.getState(); Assert.assertEquals(ExecutionStatus.RUNNING_EXECUTION, status); } - }