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 2022/07/22 08:47:48 UTC

[iotdb] branch xingtanzjr/fix_state_tacker created (now 3542f37aa5)

This is an automated email from the ASF dual-hosted git repository.

xingtanzjr pushed a change to branch xingtanzjr/fix_state_tacker
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at 3542f37aa5 fix the potential issue for StateTracker that it cannot be terminated sometimes

This branch includes the following new commits:

     new 3542f37aa5 fix the potential issue for StateTracker that it cannot be terminated sometimes

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[iotdb] 01/01: fix the potential issue for StateTracker that it cannot be terminated sometimes

Posted by xi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

xingtanzjr pushed a commit to branch xingtanzjr/fix_state_tacker
in repository https://gitbox.apache.org/repos/asf/iotdb.git

commit 3542f37aa5dc3a42fb91182507dd2bf717e8a168
Author: Jinrui.Zhang <xi...@gmail.com>
AuthorDate: Fri Jul 22 16:47:35 2022 +0800

    fix the potential issue for StateTracker that it cannot be terminated sometimes
---
 .../db/mpp/plan/scheduler/FixedRateFragInsStateTracker.java  | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/FixedRateFragInsStateTracker.java b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/FixedRateFragInsStateTracker.java
index 55e93974d9..59dbce1208 100644
--- a/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/FixedRateFragInsStateTracker.java
+++ b/server/src/main/java/org/apache/iotdb/db/mpp/plan/scheduler/FixedRateFragInsStateTracker.java
@@ -50,6 +50,7 @@ public class FixedRateFragInsStateTracker extends AbstractFragInsStateTracker {
   private ScheduledFuture<?> trackTask;
   private volatile FragmentInstanceState lastState;
   private volatile long durationToLastPrintInMS;
+  private volatile boolean aborted;
 
   public FixedRateFragInsStateTracker(
       QueryStateMachine stateMachine,
@@ -58,10 +59,14 @@ public class FixedRateFragInsStateTracker extends AbstractFragInsStateTracker {
       List<FragmentInstance> instances,
       IClientManager<TEndPoint, SyncDataNodeInternalServiceClient> internalServiceClientManager) {
     super(stateMachine, executor, scheduledExecutor, instances, internalServiceClientManager);
+    this.aborted = false;
   }
 
   @Override
-  public void start() {
+  public synchronized void start() {
+    if (aborted) {
+      return;
+    }
     trackTask =
         ScheduledExecutorUtil.safelyScheduleAtFixedRate(
             scheduledExecutor,
@@ -72,7 +77,8 @@ public class FixedRateFragInsStateTracker extends AbstractFragInsStateTracker {
   }
 
   @Override
-  public void abort() {
+  public synchronized void abort() {
+    aborted = true;
     logger.info("start to abort state tracker");
     if (trackTask != null) {
       logger.info("start to cancel fixed rate tracking task");
@@ -82,6 +88,8 @@ public class FixedRateFragInsStateTracker extends AbstractFragInsStateTracker {
       } else {
         logger.info("cancellation succeeds");
       }
+    } else {
+      logger.info("trackTask not started");
     }
   }