Browse Source

[DS-6638][MasterServer] fix task state no change when failover worker (#6639)

Co-authored-by: caishunfeng <534328519@qq.com>
wind 3 years ago
parent
commit
ae0b18f3a3

+ 2 - 2
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());