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 <[email protected]>
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 <[email protected]>
---
.../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