You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2023/04/07 07:18:50 UTC
[iotdb] 01/02: Fix npe when release fi
This is an automated email from the ASF dual-hosted git repository.
xiangweiwei pushed a commit to branch abortFINPE
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 5e5c384da66098352d9d7cae95e78a1607fdf12d
Author: Alima777 <wx...@gmail.com>
AuthorDate: Thu Apr 6 17:23:00 2023 +0800
Fix npe when release fi
---
.../db/mpp/execution/schedule/DriverScheduler.java | 28 ++++++++++++----------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/execution/schedule/DriverScheduler.java b/server/src/main/java/org/apache/iotdb/db/mpp/execution/schedule/DriverScheduler.java
index 6cd893f441..733958b06e 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/execution/schedule/DriverScheduler.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/execution/schedule/DriverScheduler.java
@@ -272,18 +272,22 @@ public class DriverScheduler implements IDriverScheduler, IService {
@Override
public void abortFragmentInstance(FragmentInstanceId instanceId) {
- Set<DriverTask> instanceRelatedTasks = queryMap.get(instanceId.getQueryId()).remove(instanceId);
- if (instanceRelatedTasks != null) {
- for (DriverTask task : instanceRelatedTasks) {
- if (task == null) {
- return;
- }
- task.lock();
- try {
- task.setAbortCause(DriverTaskAbortedException.BY_FRAGMENT_ABORT_CALLED);
- clearDriverTask(task);
- } finally {
- task.unlock();
+ Map<FragmentInstanceId, Set<DriverTask>> queryRelatedTasks =
+ queryMap.get(instanceId.getQueryId());
+ if (queryRelatedTasks != null) {
+ Set<DriverTask> instanceRelatedTasks = queryRelatedTasks.remove(instanceId);
+ if (instanceRelatedTasks != null) {
+ for (DriverTask task : instanceRelatedTasks) {
+ if (task == null) {
+ return;
+ }
+ task.lock();
+ try {
+ task.setAbortCause(DriverTaskAbortedException.BY_FRAGMENT_ABORT_CALLED);
+ clearDriverTask(task);
+ } finally {
+ task.unlock();
+ }
}
}
}