You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2022/10/24 09:33:44 UTC
[iotdb] branch IOTDB-4619 updated: Fix NPE while restarting
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch IOTDB-4619
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/IOTDB-4619 by this push:
new 0bb1c2db4b Fix NPE while restarting
0bb1c2db4b is described below
commit 0bb1c2db4b58c42f8bdf385e6f74a6f40c00db6f
Author: JackieTien97 <ja...@gmail.com>
AuthorDate: Mon Oct 24 17:33:27 2022 +0800
Fix NPE while restarting
---
.../org/apache/iotdb/confignode/manager/ConfigManager.java | 2 +-
.../org/apache/iotdb/confignode/manager/cq/CQManager.java | 11 +++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
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 e3625bd3dd..8b2671b6c9 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
@@ -152,7 +152,7 @@ public class ConfigManager implements IManager {
private static final Logger LOGGER = LoggerFactory.getLogger(ConfigManager.class);
/** Manage PartitionTable read/write requests through the ConsensusLayer */
- private ConsensusManager consensusManager;
+ private volatile ConsensusManager consensusManager;
/** Manage cluster node */
private final NodeManager nodeManager;
diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/manager/cq/CQManager.java b/confignode/src/main/java/org/apache/iotdb/confignode/manager/cq/CQManager.java
index 90e8a32a58..ead3f1b63f 100644
--- a/confignode/src/main/java/org/apache/iotdb/confignode/manager/cq/CQManager.java
+++ b/confignode/src/main/java/org/apache/iotdb/confignode/manager/cq/CQManager.java
@@ -41,6 +41,7 @@ import org.slf4j.LoggerFactory;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -132,6 +133,16 @@ public class CQManager {
// 3. get all CQs
List<CQInfo.CQEntry> allCQs = null;
+ // wait for consensus layer ready
+ while (configManager.getConsensusManager() == null) {
+ try {
+ LOGGER.info("consensus layer is not ready, sleep 1s...");
+ TimeUnit.SECONDS.sleep(1);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ LOGGER.warn("Unexpected interruption during waiting for consensus layer ready.");
+ }
+ }
// keep fetching until we get all CQEntries if this node is still leader
while (allCQs == null && configManager.getConsensusManager().isLeader()) {
ConsensusReadResponse response = configManager.getConsensusManager().read(new ShowCQPlan());