diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerInfo.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerInfo.java index 7b5c467e679..0ecfdacb03d 100644 --- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerInfo.java +++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/container/ContainerInfo.java @@ -467,4 +467,12 @@ public boolean isOpen() { return state == HddsProtos.LifeCycleState.OPEN || state == HddsProtos.LifeCycleState.CLOSING; } + + /** + * Check if a container is in Open state, but Close has not been initiated. + * @return true if Open, false otherwise. + */ + public boolean isOpenNotClosing() { + return state == HddsProtos.LifeCycleState.OPEN; + } } diff --git a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java index 6a875e65642..769f3efe335 100644 --- a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java +++ b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/server/SCMClientProtocolServer.java @@ -238,7 +238,7 @@ public ContainerWithPipeline getContainerWithPipeline(long containerID) getContainer(id); final Pipeline pipeline; - if (container.isOpen()) { + if (container.isOpenNotClosing()) { // Ratis pipeline pipeline = scm.getPipelineManager() .getPipeline(container.getPipelineID());