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()) {