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 2020/07/16 08:16:22 UTC

[incubator-iotdb] branch rel/0.10 updated: fix release unclosed file reader bug

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

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


The following commit(s) were added to refs/heads/rel/0.10 by this push:
     new 987ed36  fix release unclosed file reader bug
987ed36 is described below

commit 987ed36c436bf0550697f624c1530d1542dc4c12
Author: qiaojialin <64...@qq.com>
AuthorDate: Thu Jul 16 15:12:39 2020 +0800

    fix release unclosed file reader bug
---
 .../java/org/apache/iotdb/db/query/control/QueryFileManager.java   | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/query/control/QueryFileManager.java b/server/src/main/java/org/apache/iotdb/db/query/control/QueryFileManager.java
index 8224aae..30a1984 100644
--- a/server/src/main/java/org/apache/iotdb/db/query/control/QueryFileManager.java
+++ b/server/src/main/java/org/apache/iotdb/db/query/control/QueryFileManager.java
@@ -90,14 +90,14 @@ public class QueryFileManager {
   void removeUsedFilesForQuery(long queryId) {
     Set<TsFileResource> tsFiles = sealedFilePathsMap.get(queryId);
     if (tsFiles != null) {
-      for (TsFileResource tsFile : sealedFilePathsMap.get(queryId)) {
+      for (TsFileResource tsFile : tsFiles) {
         FileReaderManager.getInstance().decreaseFileReaderReference(tsFile, true);
       }
       sealedFilePathsMap.remove(queryId);
     }
     tsFiles = unsealedFilePathsMap.get(queryId);
     if (tsFiles != null) {
-      for (TsFileResource tsFile : unsealedFilePathsMap.get(queryId)) {
+      for (TsFileResource tsFile : tsFiles) {
         FileReaderManager.getInstance().decreaseFileReaderReference(tsFile, false);
       }
       unsealedFilePathsMap.remove(queryId);
@@ -111,8 +111,7 @@ public class QueryFileManager {
    * must not return null.
    */
   void addFilePathToMap(long queryId, TsFileResource tsFile, boolean isClosed) {
-    Map<Long, Set<TsFileResource>> pathMap = isClosed ? unsealedFilePathsMap :
-        sealedFilePathsMap;
+    Map<Long, Set<TsFileResource>> pathMap = isClosed ? sealedFilePathsMap : unsealedFilePathsMap;
     //TODO this is not an atomic operation, is there concurrent problem?
     if (!pathMap.get(queryId).contains(tsFile)) {
       pathMap.get(queryId).add(tsFile);