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");
}
}