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]
