You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ja...@apache.org on 2023/04/06 07:26:45 UTC
[iotdb] branch master updated: Fix Context release source NPE
This is an automated email from the ASF dual-hosted git repository.
jackietien 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 69f2693995 Fix Context release source NPE
69f2693995 is described below
commit 69f2693995a591d6453ab2dfe95b19d075b88ed8
Author: Jackie Tien <ja...@gmail.com>
AuthorDate: Thu Apr 6 15:26:39 2023 +0800
Fix Context release source NPE
---
.../execution/fragment/FragmentInstanceContext.java | 19 +++++++++++++------
.../execution/fragment/FragmentInstanceExecution.java | 5 +++++
2 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceContext.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceContext.java
index f810bc1ddb..7e6257ef20 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceContext.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceContext.java
@@ -355,14 +355,21 @@ public class FragmentInstanceContext extends QueryContext {
* be decreased.
*/
protected synchronized void releaseResource() {
- for (TsFileResource tsFile : closedFilePaths) {
- FileReaderManager.getInstance().decreaseFileReaderReference(tsFile, true);
+ // For schema related query FI, closedFilePaths and unClosedFilePaths will be null
+ if (closedFilePaths != null) {
+ for (TsFileResource tsFile : closedFilePaths) {
+ FileReaderManager.getInstance().decreaseFileReaderReference(tsFile, true);
+ }
+ closedFilePaths = null;
}
- closedFilePaths = null;
- for (TsFileResource tsFile : unClosedFilePaths) {
- FileReaderManager.getInstance().decreaseFileReaderReference(tsFile, false);
+
+ if (unClosedFilePaths != null) {
+ for (TsFileResource tsFile : unClosedFilePaths) {
+ FileReaderManager.getInstance().decreaseFileReaderReference(tsFile, false);
+ }
+ unClosedFilePaths = null;
}
- unClosedFilePaths = null;
+
dataRegion = null;
timeFilter = null;
sourcePaths = null;
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceExecution.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceExecution.java
index b402f0892e..c50c47c41f 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceExecution.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/fragment/FragmentInstanceExecution.java
@@ -145,6 +145,11 @@ public class FragmentInstanceExecution {
if (newState.isFailed()) {
scheduler.abortFragmentInstance(instanceId);
}
+ } catch (Throwable t) {
+ try (SetThreadName threadName = new SetThreadName(instanceId.getFullId())) {
+ LOGGER.error(
+ "Errors happened while trying to finish FI, resource may already leak!", t);
+ }
}
});
}