This is an automated email from the ASF dual-hosted git repository.

lgcareer pushed a commit to branch dev-1.3.0
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git


The following commit(s) were added to refs/heads/dev-1.3.0 by this push:
     new 1caac70  [bug fix]fix bug: After the master is fault-tolerant, it 
cannot resume operation  (#2813)
1caac70 is described below

commit 1caac70215ee62a3bcd984ad05ce4a996f85dd24
Author: bao liang <[email protected]>
AuthorDate: Wed May 27 11:33:10 2020 +0800

    [bug fix]fix bug: After the master is fault-tolerant, it cannot resume 
operation  (#2813)
    
    * feature: add number configuration for master dispatch tasks
    
    * fix bug(#2762) the master would be blocked when worker group not exists
    
    * fix bug(#2762) the master would be blocked when worker group not exists
    
    * fix ut
    
    * fix ut
    
    * fix bug(2781): cannot pause work flow when task state is "submit success"
    
    * fix code smell
    
    * add mysql other param blank judge
    
    * test
    
    * update comments
    
    * update comments
    
    * add ut
    
    * fix bug: Restart the worker service again, the previously submitted 
successful tasks are not executed
    
    * update comments
    
    * add sleep
    
    * add null point check
    
    * fix bug:After the master is fault-tolerant, it cannot resume operation
    
    * fix bug: do not failover the host is 'NULL' process
    
    Co-authored-by: baoliang <[email protected]>
---
 .../java/org/apache/dolphinscheduler/server/zk/ZKMasterClient.java  | 3 +++
 .../org/apache/dolphinscheduler/service/process/ProcessService.java | 6 +-----
 .../org/apache/dolphinscheduler/service/zk/AbstractZKClient.java    | 6 +++++-
 3 files changed, 9 insertions(+), 6 deletions(-)

diff --git 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/zk/ZKMasterClient.java
 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/zk/ZKMasterClient.java
index 69aecee..1b807a7 100644
--- 
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/zk/ZKMasterClient.java
+++ 
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/zk/ZKMasterClient.java
@@ -335,6 +335,9 @@ public class ZKMasterClient extends AbstractZKClient {
 
                //updateProcessInstance host is null and insert into command
                for(ProcessInstance processInstance : 
needFailoverProcessInstanceList){
+                       if(Constants.NULL.equals(processInstance.getHost()) ){
+                           continue;
+                       }
                        
processService.processNeedFailoverProcessInstances(processInstance);
                }
 
diff --git 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
index 36e2b60..0bab35a 100644
--- 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
+++ 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
@@ -121,10 +121,6 @@ public class ProcessService {
             logger.info("there is not enough thread for this command: {}", 
command);
             return setWaitingThreadProcess(command, processInstance);
         }
-        if 
(processInstance.getCommandType().equals(CommandType.RECOVER_TOLERANCE_FAULT_PROCESS)){
-            delCommandByid(command.getId());
-            return null;
-        }
         processInstance.setCommandType(command.getCommandType());
         processInstance.addHistoryCmd(command.getCommandType());
         saveProcessInstance(processInstance);
@@ -1484,7 +1480,7 @@ public class ProcessService {
     @Transactional(rollbackFor = Exception.class)
     public void processNeedFailoverProcessInstances(ProcessInstance 
processInstance){
         //1 update processInstance host is null
-        processInstance.setHost("null");
+        processInstance.setHost(Constants.NULL);
         processInstanceMapper.updateById(processInstance);
 
         //2 insert into recover command
diff --git 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/zk/AbstractZKClient.java
 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/zk/AbstractZKClient.java
index acbbe76..2960969 100644
--- 
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/zk/AbstractZKClient.java
+++ 
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/zk/AbstractZKClient.java
@@ -125,12 +125,16 @@ public abstract class AbstractZKClient extends 
ZookeeperCachedOperator {
                List<Server> masterServers = new ArrayList<>();
                for (Map.Entry<String, String> entry : masterMap.entrySet()) {
                        Server masterServer = 
ResInfo.parseHeartbeatForZKInfo(entry.getValue());
+                       if(masterServer == null){
+                               continue;
+                       }
                        String key = entry.getKey();
                        masterServer.setZkDirectory(parentPath + "/"+ key);
                        //set host and port
                        String[] hostAndPort=key.split(COLON);
                        String[] hosts=hostAndPort[0].split(DIVISION_STRING);
-                       masterServer.setHost(hosts[hosts.length-1]);// fetch 
the last one
+                       // fetch the last one
+                       masterServer.setHost(hosts[hosts.length-1]);
                        masterServer.setPort(Integer.parseInt(hostAndPort[1]));
                        masterServers.add(masterServer);
                }

Reply via email to