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

tanxinyu 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 df3c3f5  fix NPE when header node is non-existent. (#4089)
df3c3f5 is described below

commit df3c3f59e5b00ce4c3c2d80ae1e0280dd183fee8
Author: lisijia <[email protected]>
AuthorDate: Tue Oct 12 10:18:34 2021 +0800

    fix NPE when header node is non-existent. (#4089)
    
    * fix NPE when header node is non-existent.
    
    * adjust the log level
---
 .../log/manage/FilePartitionedSnapshotLogManager.java        | 12 ++++++++----
 .../apache/iotdb/cluster/server/member/DataGroupMember.java  |  2 +-
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git 
a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/FilePartitionedSnapshotLogManager.java
 
b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/FilePartitionedSnapshotLogManager.java
index fc09b8c..29c1258 100644
--- 
a/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/FilePartitionedSnapshotLogManager.java
+++ 
b/cluster/src/main/java/org/apache/iotdb/cluster/log/manage/FilePartitionedSnapshotLogManager.java
@@ -133,10 +133,14 @@ public class FilePartitionedSnapshotLogManager extends 
PartitionedSnapshotLogMan
     boolean slotExistsInPartition;
     HashSet<Integer> slots = null;
     if (dataGroupMember.getMetaGroupMember() != null) {
-      slots =
-          new HashSet<>(
-              ((SlotPartitionTable) 
dataGroupMember.getMetaGroupMember().getPartitionTable())
-                  .getNodeSlots(dataGroupMember.getHeader()));
+      // if header node in raft group has removed, the result may be null
+      List<Integer> nodeSlots =
+          ((SlotPartitionTable) 
dataGroupMember.getMetaGroupMember().getPartitionTable())
+              .getNodeSlots(dataGroupMember.getHeader());
+      // the method of 'HashSet(Collection<? extends E> c)' throws NPE,so we 
need check this part
+      if (nodeSlots != null) {
+        slots = new HashSet<>(nodeSlots);
+      }
     }
 
     for (Map.Entry<Integer, Collection<TimeseriesSchema>> entry : 
slotTimeseries.entrySet()) {
diff --git 
a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
 
b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
index 535a86c..f4a750b 100644
--- 
a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
+++ 
b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/DataGroupMember.java
@@ -816,7 +816,7 @@ public class DataGroupMember extends RaftMember {
 
   private boolean createTimeseriesForFailedInsertion(InsertPlan plan)
       throws CheckConsistencyException, IllegalPathException {
-    logger.info("create time series for failed insertion {}", plan);
+    logger.debug("create time series for failed insertion {}", plan);
     // apply measurements according to failed measurements
     if (plan instanceof InsertMultiTabletPlan) {
       for (InsertTabletPlan insertPlan : ((InsertMultiTabletPlan) 
plan).getInsertTabletPlanList()) {

Reply via email to