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 <[email protected]> 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);
