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 11:35:57 UTC
[iotdb] branch rel/1.1 updated: [To rel/1.1] Fix Context release source NPE
This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch rel/1.1
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.1 by this push:
new 14edf20e06 [To rel/1.1] Fix Context release source NPE
14edf20e06 is described below
commit 14edf20e06dabf553029c25bf428a0478612893c
Author: Jackie Tien <ja...@gmail.com>
AuthorDate: Thu Apr 6 19:35:50 2023 +0800
[To rel/1.1] 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 f9c17c9963..22377fc9ad 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
@@ -140,6 +140,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);
+ }
}
});
}