From 800558f417b745d47d0236498d19b9e52a4a6b5a Mon Sep 17 00:00:00 2001 From: wind Date: Sun, 31 Oct 2021 21:12:55 +0800 Subject: [PATCH] [DS-6638][MasterServer] fix task state no change when failover worker (#6639) Co-authored-by: caishunfeng <534328519@qq.com> --- .../server/master/registry/MasterRegistryClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/registry/MasterRegistryClient.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/registry/MasterRegistryClient.java index 7bae6de162..c157fb0bae 100644 --- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/registry/MasterRegistryClient.java +++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/registry/MasterRegistryClient.java @@ -275,6 +275,7 @@ public class MasterRegistryClient { * * @param workerHost worker host * @param needCheckWorkerAlive need check worker alive + * @param checkOwner need check process instance owner */ private void failoverWorker(String workerHost, boolean needCheckWorkerAlive, boolean checkOwner) { logger.info("start worker[{}] failover ...", workerHost); @@ -289,9 +290,8 @@ public class MasterRegistryClient { ProcessInstance processInstance = processService.findProcessInstanceDetailById(taskInstance.getProcessInstanceId()); if (workerHost == null || !checkOwner - || processInstance.getHost().equalsIgnoreCase(workerHost)) { + || processInstance.getHost().equalsIgnoreCase(getLocalAddress())) { // only failover the task owned myself if worker down. - // failover master need handle worker at the same time if (processInstance == null) { logger.error("failover error, the process {} of task {} do not exists.", taskInstance.getProcessInstanceId(), taskInstance.getId());