Browse Source

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

Co-authored-by: caishunfeng <534328519@qq.com>
3.0.0/version-upgrade
wind 3 years ago committed by GitHub
parent
commit
ae0b18f3a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/registry/MasterRegistryClient.java

4
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 workerHost worker host
* @param needCheckWorkerAlive need check worker alive * @param needCheckWorkerAlive need check worker alive
* @param checkOwner need check process instance owner
*/ */
private void failoverWorker(String workerHost, boolean needCheckWorkerAlive, boolean checkOwner) { private void failoverWorker(String workerHost, boolean needCheckWorkerAlive, boolean checkOwner) {
logger.info("start worker[{}] failover ...", workerHost); logger.info("start worker[{}] failover ...", workerHost);
@ -289,9 +290,8 @@ public class MasterRegistryClient {
ProcessInstance processInstance = processService.findProcessInstanceDetailById(taskInstance.getProcessInstanceId()); ProcessInstance processInstance = processService.findProcessInstanceDetailById(taskInstance.getProcessInstanceId());
if (workerHost == null if (workerHost == null
|| !checkOwner || !checkOwner
|| processInstance.getHost().equalsIgnoreCase(workerHost)) { || processInstance.getHost().equalsIgnoreCase(getLocalAddress())) {
// only failover the task owned myself if worker down. // only failover the task owned myself if worker down.
// failover master need handle worker at the same time
if (processInstance == null) { if (processInstance == null) {
logger.error("failover error, the process {} of task {} do not exists.", logger.error("failover error, the process {} of task {} do not exists.",
taskInstance.getProcessInstanceId(), taskInstance.getId()); taskInstance.getProcessInstanceId(), taskInstance.getId());

Loading…
Cancel
Save