Repository: hadoop
Updated Branches:
  refs/heads/trunk 211034a6c -> 567b5558d


HDDS-343. Containers are stuck in closing state in scm. Contributed by Elek, 
Marton.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/567b5558
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/567b5558
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/567b5558

Branch: refs/heads/trunk
Commit: 567b5558d5fc77d76edabaf3c24d44b2cd97177b
Parents: 211034a
Author: Nanda kumar <[email protected]>
Authored: Mon Sep 3 20:14:45 2018 +0530
Committer: Nanda kumar <[email protected]>
Committed: Mon Sep 3 20:14:45 2018 +0530

----------------------------------------------------------------------
 .../hadoop/hdds/scm/container/ContainerMapping.java    | 13 +++++++++++++
 1 file changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/567b5558/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerMapping.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerMapping.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerMapping.java
index d506b0c..65b97ca 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerMapping.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerMapping.java
@@ -22,6 +22,7 @@ import com.google.common.primitives.Longs;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.StorageUnit;
 import org.apache.hadoop.hdds.protocol.DatanodeDetails;
+import org.apache.hadoop.hdds.protocol.proto.HddsProtos.LifeCycleEvent;
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos.LifeCycleState;
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos.SCMContainerInfo;
 import org.apache.hadoop.hdds.scm.block.PendingDeleteStatusList;
@@ -532,6 +533,18 @@ public class ContainerMapping implements Mapping {
           HddsProtos.SCMContainerInfo knownState =
               HddsProtos.SCMContainerInfo.PARSER.parseFrom(containerBytes);
 
+          if (knownState.getState() == LifeCycleState.CLOSING
+              && contInfo.getState() == LifeCycleState.CLOSED) {
+
+            updateContainerState(contInfo.getContainerID(),
+                LifeCycleEvent.CLOSE);
+
+            //reread the container
+            knownState =
+                HddsProtos.SCMContainerInfo.PARSER
+                    .parseFrom(containerStore.get(dbKey));
+          }
+
           HddsProtos.SCMContainerInfo newState =
               reconcileState(contInfo, knownState, datanodeDetails);
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to