You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ji...@apache.org on 2022/02/21 08:53:45 UTC

[dolphinscheduler] branch 2.0.4-prepare updated: [cherry-pick-2.0.4] [Bug] [dolphinscheduler-server] task run error when worker group name contains uppercase letters (#8459)

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

jinyleechina pushed a commit to branch 2.0.4-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/2.0.4-prepare by this push:
     new 2dec94d  [cherry-pick-2.0.4] [Bug] [dolphinscheduler-server] task run error when worker group name contains uppercase letters (#8459)
2dec94d is described below

commit 2dec94d3b47eaf7dfb9a9bcebbc7b7a2fb2def0d
Author: caishunfeng <ca...@gmail.com>
AuthorDate: Mon Feb 21 16:53:39 2022 +0800

    [cherry-pick-2.0.4] [Bug] [dolphinscheduler-server] task run error when worker group name contains uppercase letters (#8459)
    
    * remove worker group lowercase (#8448)
    
    * add try catch (#8433)
    
    Co-authored-by: xiangzihao <46...@qq.com>
---
 .../server/master/registry/ServerNodeManager.java  | 40 ++++++++++++----------
 1 file changed, 21 insertions(+), 19 deletions(-)

diff --git a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/registry/ServerNodeManager.java b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/registry/ServerNodeManager.java
index 6b30a1a..075c573 100644
--- a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/registry/ServerNodeManager.java
+++ b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/registry/ServerNodeManager.java
@@ -189,26 +189,30 @@ public class ServerNodeManager implements InitializingBean {
 
         @Override
         public void run() {
-            // sync worker node info
-            Map<String, String> newWorkerNodeInfo = registryClient.getServerMaps(NodeType.WORKER, true);
-            syncAllWorkerNodeInfo(newWorkerNodeInfo);
-
-            // sync worker group nodes from database
-            List<WorkerGroup> workerGroupList = workerGroupMapper.queryAllWorkerGroup();
-            if (CollectionUtils.isNotEmpty(workerGroupList)) {
-                for (WorkerGroup wg : workerGroupList) {
-                    String workerGroup = wg.getName();
-                    Set<String> nodes = new HashSet<>();
-                    String[] addrs = wg.getAddrList().split(Constants.COMMA);
-                    for (String addr : addrs) {
-                        if (newWorkerNodeInfo.containsKey(addr)) {
-                            nodes.add(addr);
+            try {
+                // sync worker node info
+                Map<String, String> newWorkerNodeInfo = registryClient.getServerMaps(NodeType.WORKER, true);
+                syncAllWorkerNodeInfo(newWorkerNodeInfo);
+
+                // sync worker group nodes from database
+                List<WorkerGroup> workerGroupList = workerGroupMapper.queryAllWorkerGroup();
+                if (CollectionUtils.isNotEmpty(workerGroupList)) {
+                    for (WorkerGroup wg : workerGroupList) {
+                        String workerGroup = wg.getName();
+                        Set<String> nodes = new HashSet<>();
+                        String[] addrs = wg.getAddrList().split(Constants.COMMA);
+                        for (String addr : addrs) {
+                            if (newWorkerNodeInfo.containsKey(addr)) {
+                                nodes.add(addr);
+                            }
+                        }
+                        if (!nodes.isEmpty()) {
+                            syncWorkerGroupNodes(workerGroup, nodes);
                         }
-                    }
-                    if (!nodes.isEmpty()) {
-                        syncWorkerGroupNodes(workerGroup, nodes);
                     }
                 }
+            } catch (Exception e) {
+                logger.error("WorkerNodeInfoAndGroupDbSyncTask error:", e);
             }
         }
     }
@@ -359,7 +363,6 @@ public class ServerNodeManager implements InitializingBean {
     private void syncWorkerGroupNodes(String workerGroup, Collection<String> nodes) {
         workerGroupLock.lock();
         try {
-            workerGroup = workerGroup.toLowerCase();
             Set<String> workerNodes = workerGroupNodes.getOrDefault(workerGroup, new HashSet<>());
             workerNodes.clear();
             workerNodes.addAll(nodes);
@@ -385,7 +388,6 @@ public class ServerNodeManager implements InitializingBean {
             if (StringUtils.isEmpty(workerGroup)) {
                 workerGroup = Constants.DEFAULT_WORKER_GROUP;
             }
-            workerGroup = workerGroup.toLowerCase();
             Set<String> nodes = workerGroupNodes.get(workerGroup);
             if (CollectionUtils.isNotEmpty(nodes)) {
                 // avoid ConcurrentModificationException