This is an automated email from the ASF dual-hosted git repository.
sumitagrawl 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 9553e1dd3a6 HDDS-15261. Increment UNHEALTHY count when a container
reaches sufficient unhealthy replicas (#10260)
9553e1dd3a6 is described below
commit 9553e1dd3a606c4df6a774b5780c924ab4e15f82
Author: Sarveksha Yeshavantha Raju
<[email protected]>
AuthorDate: Wed May 13 21:15:23 2026 +0530
HDDS-15261. Increment UNHEALTHY count when a container reaches sufficient
unhealthy replicas (#10260)
---
.../health/RatisUnhealthyReplicationCheckHandler.java | 6 ++++++
.../TestRatisUnhealthyReplicationCheckHandler.java | 18 ++++++++++++++++++
2 files changed, 24 insertions(+)
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/health/RatisUnhealthyReplicationCheckHandler.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/health/RatisUnhealthyReplicationCheckHandler.java
index 089535aad9f..bf061bb91d9 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/health/RatisUnhealthyReplicationCheckHandler.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/health/RatisUnhealthyReplicationCheckHandler.java
@@ -105,6 +105,12 @@ public boolean handle(ContainerCheckRequest request) {
return true;
}
+ if (health.getHealthState() ==
ContainerHealthResult.HealthState.UNHEALTHY) {
+ // Container is UNHEALTHY + SUFFICIENTLY REPLICATED
+ report.incrementAndSample(ContainerHealthState.UNHEALTHY, container);
+ LOG.debug("Container {} is sufficiently replicated with all unhealthy
replicas", container);
+ }
+
return false;
}
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisUnhealthyReplicationCheckHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisUnhealthyReplicationCheckHandler.java
index bd950471f6e..a6ccacef5ce 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisUnhealthyReplicationCheckHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/health/TestRatisUnhealthyReplicationCheckHandler.java
@@ -263,6 +263,24 @@ public void testUnderReplicatedDueToPendingDelete() {
ContainerHealthState.UNHEALTHY_UNDER_REPLICATED));
}
+ @Test
+ public void testSufficientlyReplicatedWithAllUnhealthyReplicas() {
+ ContainerInfo container = createContainerInfo(repConfig, 1L,
HddsProtos.LifeCycleState.CLOSED);
+ Set<ContainerReplica> replicas = createReplicas(container.containerID(),
+ ContainerReplicaProto.State.UNHEALTHY, 0, 0, 0);
+ requestBuilder.setContainerInfo(container).setContainerReplicas(replicas);
+
+ ContainerHealthResult health =
handler.checkReplication(requestBuilder.build());
+ assertEquals(ContainerHealthResult.HealthState.UNHEALTHY,
health.getHealthState());
+
+ assertFalse(handler.handle(requestBuilder.build()));
+ assertEquals(0, repQueue.underReplicatedQueueSize());
+ assertEquals(0, repQueue.overReplicatedQueueSize());
+ assertEquals(1, report.getStat(ContainerHealthState.UNHEALTHY));
+ assertEquals(0,
report.getStat(ContainerHealthState.UNHEALTHY_UNDER_REPLICATED));
+ assertEquals(0,
report.getStat(ContainerHealthState.UNHEALTHY_OVER_REPLICATED));
+ }
+
@Test
public void testOverReplicationWithAllUnhealthyReplicas() {
ContainerInfo container =
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]