From 1b32e28cc821daf940c264fecec23b2225446a67 Mon Sep 17 00:00:00 2001 From: Wenjun Ruan Date: Tue, 6 Feb 2024 15:25:50 +0800 Subject: [PATCH] Set the workflow instance ready state to running in failover (#15572) --- .../service/process/ProcessServiceImpl.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java index 1f27857513..fc906491d1 100644 --- a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java +++ b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessServiceImpl.java @@ -793,6 +793,14 @@ public class ProcessServiceImpl implements ProcessService { break; case RECOVER_TOLERANCE_FAULT_PROCESS: // recover tolerance fault process + // If the workflow instance is in ready state, we will change to running, this can avoid the workflow + // instance + // status is not correct with taskInsatnce status + if (processInstance.getState() == WorkflowExecutionStatus.READY_PAUSE + || processInstance.getState() == WorkflowExecutionStatus.READY_STOP) { + // todo: If we handle the ready state in WorkflowExecuteRunnable then we can remove below code + processInstance.setState(WorkflowExecutionStatus.RUNNING_EXECUTION); + } processInstance.setRecovery(Flag.YES); processInstance.setRunTimes(runTime + 1); runStatus = processInstance.getState();