You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ca...@apache.org on 2022/11/22 10:37:31 UTC

[iotdb] branch master updated: [IOTDB-5007] Changed the logic of register unclean datanode (#8077)

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

caogaofei pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/master by this push:
     new 6c70719095 [IOTDB-5007] Changed the logic of register unclean datanode (#8077)
6c70719095 is described below

commit 6c70719095d2fe9f954613819d31ffeeaa1ad07b
Author: Caideyipi <87...@users.noreply.github.com>
AuthorDate: Tue Nov 22 18:37:25 2022 +0800

    [IOTDB-5007] Changed the logic of register unclean datanode (#8077)
---
 .../java/org/apache/iotdb/confignode/manager/node/NodeManager.java   | 5 +++--
 docs/UserGuide/API/Status-Codes.md                                   | 2 +-
 docs/zh/UserGuide/API/Status-Codes.md                                | 2 +-
 server/src/main/java/org/apache/iotdb/db/service/DataNode.java       | 4 ++++
 service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java     | 2 +-
 5 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
index 6e7f21da20..d98df75f48 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
@@ -251,8 +251,9 @@ public class NodeManager {
       status.setCode(TSStatusCode.SUCCESS_STATUS.getStatusCode());
       status.setMessage("registerDataNode success.");
     } else {
-      status.setCode(TSStatusCode.REGISTER_REMOVED_DATANODE.getStatusCode());
-      status.setMessage("Cannot register datanode, maybe this datanode is already removed.");
+      status.setCode(TSStatusCode.REGISTER_DATANODE_WITH_WRONG_ID.getStatusCode());
+      status.setMessage(
+          "Cannot register datanode with wrong id. Maybe it's already removed, or it has another datanode's run-time properties.");
     }
 
     dataSet.setStatus(status);
diff --git a/docs/UserGuide/API/Status-Codes.md b/docs/UserGuide/API/Status-Codes.md
index d2c5b1b543..9d26153bfe 100644
--- a/docs/UserGuide/API/Status-Codes.md
+++ b/docs/UserGuide/API/Status-Codes.md
@@ -129,7 +129,7 @@ Here is a list of Status Code and related message:
 |1004|DATANODE_NOT_EXIST|DataNode not exist error|
 |1005|DATANODE_STOP_ERROR|DataNode stop error|
 |1006|REMOVE_DATANODE_ERROR|Remove datanode failed|
-|1007|REGISTER_REMOVED_DATANODE|The DataNode to be registered is removed before|
+|1007|REGISTER_DATANODE_WITH_WRONG_ID|The DataNode to be registered has incorrect register id|
 |1008|CAN_NOT_CONNECT_DATANODE|Can not connect to DataNode|
 |1100|LOAD_FILE_ERROR|Meet error while loading file|
 |1101|LOAD_PIECE_OF_TSFILE_ERROR|Error when load a piece of TsFile when loading|
diff --git a/docs/zh/UserGuide/API/Status-Codes.md b/docs/zh/UserGuide/API/Status-Codes.md
index 97a5d5a509..b8ccebbd02 100644
--- a/docs/zh/UserGuide/API/Status-Codes.md
+++ b/docs/zh/UserGuide/API/Status-Codes.md
@@ -130,7 +130,7 @@ try {
 |1004|DATANODE_NOT_EXIST|此 DataNode 不存在|
 |1005|DATANODE_STOP_ERROR|DataNode 关闭失败|
 |1006|REMOVE_DATANODE_ERROR|移除 datanode 失败|
-|1007|REGISTER_REMOVED_DATANODE|注册的 DataNode 已经被移除|
+|1007|REGISTER_DATANODE_WITH_WRONG_ID|注册的 DataNode 中有错误的注册id|
 |1008|CAN_NOT_CONNECT_DATANODE|连接 DataNode 失败|
 |1100|LOAD_FILE_ERROR|加载文件错误|
 |1101|LOAD_PIECE_OF_TSFILE_ERROR|加载 TsFile 片段异常|
diff --git a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
index c3f3e12e3a..4bd5f32cf4 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
@@ -255,6 +255,10 @@ public class DataNode implements DataNodeMBean {
 
           logger.info("Register to the cluster successfully");
           return;
+        } else if (dataNodeRegisterResp.getStatus().getCode()
+            == TSStatusCode.REGISTER_DATANODE_WITH_WRONG_ID.getStatusCode()) {
+          logger.error(dataNodeRegisterResp.getStatus().getMessage());
+          throw new StartupException("Cannot register to the cluster.");
         }
       } catch (IOException e) {
         logger.warn("Cannot register to the cluster, because: {}", e.getMessage());
diff --git a/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java b/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
index 3068ede11f..0d665fc28c 100644
--- a/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
+++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/TSStatusCode.java
@@ -133,7 +133,7 @@ public enum TSStatusCode {
   DATANODE_NOT_EXIST(1004),
   DATANODE_STOP_ERROR(1005),
   REMOVE_DATANODE_ERROR(1006),
-  REGISTER_REMOVED_DATANODE(1007),
+  REGISTER_DATANODE_WITH_WRONG_ID(1007),
   CAN_NOT_CONNECT_DATANODE(1008),
 
   // Sync, Load TsFile