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 07:13:09 UTC

[incubator-iotdb] branch fix_query_file_manager created (now ffe450e)

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

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


      at ffe450e  fix release unclosed file reader bug

This branch includes the following new commits:

     new ffe450e  fix release unclosed file reader bug

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[incubator-iotdb] 01/01: fix release unclosed file reader bug

Posted by qi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit ffe450ed051369112e5c87b08efad4c541a446dd
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);