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

qiaojialin 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 b807e4a  fix compaction writer write after close (#4186)
b807e4a is described below

commit b807e4a5d0bc9414ca197f3a44b14ee2ac1c076e
Author: liuxuxin <[email protected]>
AuthorDate: Tue Oct 19 22:53:35 2021 +0800

    fix compaction writer write after close (#4186)
---
 .../apache/iotdb/db/engine/compaction/utils/CompactionUtils.java    | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/utils/CompactionUtils.java
 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/utils/CompactionUtils.java
index 23cdb16..c7a1818 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/engine/compaction/utils/CompactionUtils.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/engine/compaction/utils/CompactionUtils.java
@@ -260,8 +260,9 @@ public class CompactionUtils {
       List<Modification> modifications)
       throws IOException, IllegalPathException {
     Map<String, TsFileSequenceReader> tsFileSequenceReaderMap = new 
HashMap<>();
+    RestorableTsFileIOWriter writer = null;
     try {
-      RestorableTsFileIOWriter writer = new 
RestorableTsFileIOWriter(targetResource.getTsFile());
+      writer = new RestorableTsFileIOWriter(targetResource.getTsFile());
       Map<String, List<Modification>> modificationCache = new HashMap<>();
       RateLimiter compactionWriteRateLimiter =
           MergeManager.getINSTANCE().getMergeWriteRateLimiter();
@@ -432,6 +433,9 @@ public class CompactionUtils {
       for (TsFileSequenceReader reader : tsFileSequenceReaderMap.values()) {
         reader.close();
       }
+      if (writer != null && writer.canWrite()) {
+        writer.close();
+      }
     }
   }
 

Reply via email to