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

Reply via email to