This is an automated email from the ASF dual-hosted git repository. caogaofei pushed a commit to branch beyyes/fix_IOTDB4849 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit dbb8010a6bd1f5d6640665bbe7a1a7677f8c9c5a Author: Beyyes <[email protected]> AuthorDate: Mon Nov 14 14:35:16 2022 +0800 fix the problem that internal_address is not consistent with target_confignode when first starts --- .../org/apache/iotdb/confignode/manager/ConfigManager.java | 12 +++++++++--- .../apache/iotdb/confignode/manager/node/NodeManager.java | 10 ++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java index 2baaf0a600..542e65b261 100644 --- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java +++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/ConfigManager.java @@ -240,9 +240,15 @@ public class ConfigManager implements IManager { } public void close() throws IOException { - consensusManager.close(); - partitionManager.getRegionMaintainer().shutdown(); - procedureManager.shiftExecutor(false); + if (consensusManager != null) { + consensusManager.close(); + } + if (partitionManager != null) { + partitionManager.getRegionMaintainer().shutdown(); + } + if (procedureManager != null) { + procedureManager.shiftExecutor(false); + } } @Override 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 3db90ba4fc..90b24f4dda 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 @@ -356,6 +356,16 @@ public class NodeManager { } public TConfigNodeRegisterResp registerConfigNode(TConfigNodeRegisterReq req) { + if (configManager.getConsensusManager() == null) { + TSStatus errorStatus = new TSStatus(TSStatusCode.ERROR_GLOBAL_CONFIG.getStatusCode()); + errorStatus.setMessage( + "ConsensusManager of target-ConfigNode is not initialized, " + + "please make sure the target-ConfigNode has been started successfully."); + return new TConfigNodeRegisterResp() + .setStatus(errorStatus) + .setConfigNodeId(ERROR_STATUS_NODE_ID); + } + // Check global configuration TSStatus status = configManager.getConsensusManager().confirmLeader();
