This is an automated email from the ASF dual-hosted git repository. jackietien pushed a commit to branch IOTDB-4127 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 93f41b5c764fc7c3845419297b6a63247df96ae7 Author: JackieTien97 <[email protected]> AuthorDate: Mon Aug 15 10:08:01 2022 +0800 [IOTDB-4127] Fix NPE bug in AbstractFragInsStateTracker --- .../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)) {
