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 2022/08/15 07:38:37 UTC

[iotdb] branch master updated: [IOTDB-4127] Fix NPE bug in AbstractFragInsStateTracker (#6991)

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 d7854a6d38 [IOTDB-4127] Fix NPE bug in AbstractFragInsStateTracker (#6991)
d7854a6d38 is described below

commit d7854a6d38fc8e8b23a78601d6e1d728e2380cf4
Author: Jackie Tien <ja...@gmail.com>
AuthorDate: Mon Aug 15 15:38:31 2022 +0800

    [IOTDB-4127] Fix NPE bug in AbstractFragInsStateTracker (#6991)
---
 .../iotdb/db/mpp/plan/scheduler/AbstractFragInsStateTracker.java | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/AbstractFragInsStateTracker.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/AbstractFragInsStateTracker.java
index eb77ef7587..c2233d8da0 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/AbstractFragInsStateTracker.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/AbstractFragInsStateTracker.java
@@ -24,6 +24,7 @@ import org.apache.iotdb.commons.client.IClientManager;
 import org.apache.iotdb.commons.client.sync.SyncDataNodeInternalServiceClient;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
 import org.apache.iotdb.db.mpp.execution.QueryStateMachine;
+import org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceInfo;
 import org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceManager;
 import org.apache.iotdb.db.mpp.execution.fragment.FragmentInstanceState;
 import org.apache.iotdb.db.mpp.plan.planner.plan.FragmentInstance;
@@ -69,7 +70,13 @@ public abstract class AbstractFragInsStateTracker implements IFragInstanceStateT
       throws TException, IOException {
     TEndPoint endPoint = instance.getHostDataNode().internalEndPoint;
     if (isInstanceRunningLocally(endPoint)) {
-      return FragmentInstanceManager.getInstance().getInstanceInfo(instance.getId()).getState();
+      FragmentInstanceInfo info =
+          FragmentInstanceManager.getInstance().getInstanceInfo(instance.getId());
+      if (info != null) {
+        return info.getState();
+      } else {
+        return FragmentInstanceState.NO_SUCH_INSTANCE;
+      }
     } else {
       try (SyncDataNodeInternalServiceClient client =
           internalServiceClientManager.borrowClient(endPoint)) {