You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by ar...@apache.org on 2019/04/10 18:38:16 UTC
[hadoop] 01/01: Revert "HDDS-1370. Command Execution in Datanode
fails because of NPE (#715)"
This is an automated email from the ASF dual-hosted git repository.
arp pushed a commit to branch revert-715-HDDS-1370
in repository https://gitbox.apache.org/repos/asf/hadoop.git
commit 5b308cc38cb3167a6899d267efce63c5b1686f29
Author: Arpit Agarwal <ar...@users.noreply.github.com>
AuthorDate: Wed Apr 10 11:38:08 2019 -0700
Revert "HDDS-1370. Command Execution in Datanode fails because of NPE (#715)"
This reverts commit 0e770a65394a2aeaa56154d200c02afbe5bbb5d7.
---
.../common/statemachine/StateContext.java | 30 +++++++++-------------
.../states/datanode/RunningDatanodeState.java | 11 +-------
2 files changed, 13 insertions(+), 28 deletions(-)
diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/StateContext.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/StateContext.java
index 7e06473..4a979fd 100644
--- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/StateContext.java
+++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/statemachine/StateContext.java
@@ -348,26 +348,20 @@ public class StateContext {
throws InterruptedException, ExecutionException, TimeoutException {
stateExecutionCount.incrementAndGet();
DatanodeState<DatanodeStateMachine.DatanodeStates> task = getTask();
-
- // Adding not null check, in a case where datanode is still starting up, but
- // we called stop DatanodeStateMachine, this sets state to SHUTDOWN, and
- // there is a chance of getting task as null.
- if (task != null) {
- if (this.isEntering()) {
- task.onEnter();
+ if (this.isEntering()) {
+ task.onEnter();
+ }
+ task.execute(service);
+ DatanodeStateMachine.DatanodeStates newState = task.await(time, unit);
+ if (this.state != newState) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Task {} executed, state transited from {} to {}",
+ task.getClass().getSimpleName(), this.state, newState);
}
- task.execute(service);
- DatanodeStateMachine.DatanodeStates newState = task.await(time, unit);
- if (this.state != newState) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("Task {} executed, state transited from {} to {}",
- task.getClass().getSimpleName(), this.state, newState);
- }
- if (isExiting(newState)) {
- task.onExit();
- }
- this.setState(newState);
+ if (isExiting(newState)) {
+ task.onExit();
}
+ this.setState(newState);
}
}
diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/datanode/RunningDatanodeState.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/datanode/RunningDatanodeState.java
index 6b596fe..ec2358a 100644
--- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/datanode/RunningDatanodeState.java
+++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/states/datanode/RunningDatanodeState.java
@@ -86,16 +86,7 @@ public class RunningDatanodeState implements DatanodeState {
for (EndpointStateMachine endpoint : connectionManager.getValues()) {
Callable<EndpointStateMachine.EndPointStates> endpointTask
= getEndPointTask(endpoint);
- if (endpointTask != null) {
- ecs.submit(endpointTask);
- } else {
- // This can happen if a task is taking more time than the timeOut
- // specified for the task in await, and when it is completed the task
- // has set the state to Shutdown, we may see the state as shutdown
- // here. So, we need to Shutdown DatanodeStateMachine.
- LOG.error("State is Shutdown in RunningDatanodeState");
- context.setState(DatanodeStateMachine.DatanodeStates.SHUTDOWN);
- }
+ ecs.submit(endpointTask);
}
}
//TODO : Cache some of these tasks instead of creating them
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org