You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by er...@apache.org on 2021/08/02 04:55:10 UTC
[ozone] branch master updated: HDDS-5513. Race condition upon dn
restart at prefinalization. (#2471)
This is an automated email from the ASF dual-hosted git repository.
erose pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 622275f HDDS-5513. Race condition upon dn restart at prefinalization. (#2471)
622275f is described below
commit 622275f2e53248968f5265c5a9d63504692e8c53
Author: Gui Hecheng <ma...@tencent.com>
AuthorDate: Mon Aug 2 12:54:55 2021 +0800
HDDS-5513. Race condition upon dn restart at prefinalization. (#2471)
---
.../ozone/container/common/statemachine/DatanodeStateMachine.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/DatanodeStateMachine.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/DatanodeStateMachine.java
index 56ab9a6..488c7bc 100644
--- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/DatanodeStateMachine.java
+++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/DatanodeStateMachine.java
@@ -88,7 +88,7 @@ public class DatanodeStateMachine implements Closeable {
private final ReportManager reportManager;
private long commandsHandled;
private final AtomicLong nextHB;
- private Thread stateMachineThread = null;
+ private volatile Thread stateMachineThread = null;
private Thread cmdProcessThread = null;
private final ReplicationSupervisor supervisor;
@@ -476,7 +476,7 @@ public class DatanodeStateMachine implements Closeable {
* be sent by datanode.
*/
public void triggerHeartbeat() {
- if (stateMachineThread != null) {
+ if (stateMachineThread != null && isDaemonStarted()) {
stateMachineThread.interrupt();
}
}
@@ -517,6 +517,10 @@ public class DatanodeStateMachine implements Closeable {
}
}
+ public boolean isDaemonStarted() {
+ return this.getContext().getExecutionCount() > 0;
+ }
+
/**
*
* Check if the datanode state machine daemon is stopped.
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org