You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by qi...@apache.org on 2022/04/18 06:18:30 UTC

[iotdb] branch rel/0.13 updated: fix npe in SizeTieredCompaction MultiDeviceIterator(#5571)

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

qiaojialin pushed a commit to branch rel/0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git


The following commit(s) were added to refs/heads/rel/0.13 by this push:
     new fab54e7b5c fix npe in SizeTieredCompaction MultiDeviceIterator(#5571)
fab54e7b5c is described below

commit fab54e7b5c3165ae9cdc527c379191823f08acdd
Author: Liu Xuxin <37...@users.noreply.github.com>
AuthorDate: Sun Apr 17 23:18:25 2022 -0700

    fix npe in SizeTieredCompaction MultiDeviceIterator(#5571)
---
 .../db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java  | 5 ++++-
 .../src/main/java/org/apache/iotdb/db/service/IoTDBShutdownHook.java | 2 ++
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java
index cb76dfdcdc..69e9ab0e10 100644
--- a/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java
+++ b/server/src/main/java/org/apache/iotdb/db/engine/compaction/inner/utils/MultiTsFileDeviceIterator.java
@@ -94,7 +94,10 @@ public class MultiTsFileDeviceIterator implements AutoCloseable {
   public boolean hasNextDevice() {
     boolean hasNext = false;
     for (TsFileDeviceIterator iterator : deviceIteratorMap.values()) {
-      hasNext = hasNext || iterator.hasNext() || !iterator.current().equals(currentDevice);
+      hasNext =
+          hasNext
+              || iterator.hasNext()
+              || (iterator.current() != null && !iterator.current().equals(currentDevice));
     }
     return hasNext;
   }
diff --git a/server/src/main/java/org/apache/iotdb/db/service/IoTDBShutdownHook.java b/server/src/main/java/org/apache/iotdb/db/service/IoTDBShutdownHook.java
index 403b714d35..939f172d54 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/IoTDBShutdownHook.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/IoTDBShutdownHook.java
@@ -18,6 +18,7 @@
  */
 package org.apache.iotdb.db.service;
 
+import org.apache.iotdb.db.engine.compaction.CompactionTaskManager;
 import org.apache.iotdb.db.utils.MemUtils;
 
 import org.slf4j.Logger;
@@ -29,6 +30,7 @@ public class IoTDBShutdownHook extends Thread {
 
   @Override
   public void run() {
+    CompactionTaskManager.getInstance().stop();
     if (logger.isInfoEnabled()) {
       logger.info(
           "IoTDB exits. Jvm memory usage: {}",