This is an automated email from the ASF dual-hosted git repository.

ChenSammi 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 bf68f20f867 HDDS-15362. [DiskBalancer] Handle zero-capacity volumes in 
status report. (#10355)
bf68f20f867 is described below

commit bf68f20f867de2281e0bcdf251308eabe1371587
Author: slfan1989 <[email protected]>
AuthorDate: Fri May 29 14:24:43 2026 +0800

    HDDS-15362. [DiskBalancer] Handle zero-capacity volumes in status report. 
(#10355)
---
 .../diskbalancer/DiskBalancerVolumeCalculation.java  |  9 +++++----
 .../TestDiskBalancerVolumeCalculation.java           | 20 ++++++++++++++++++++
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/diskbalancer/DiskBalancerVolumeCalculation.java
 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/diskbalancer/DiskBalancerVolumeCalculation.java
index 6e6d662f14d..071e43c5187 100644
--- 
a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/diskbalancer/DiskBalancerVolumeCalculation.java
+++ 
b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/diskbalancer/DiskBalancerVolumeCalculation.java
@@ -22,7 +22,6 @@
 
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.stream.Collectors;
 import org.apache.hadoop.hdds.fs.SpaceUsageSource;
 import org.apache.hadoop.ozone.container.common.volume.HddsVolume;
@@ -167,13 +166,15 @@ public static final class VolumeFixedUsage {
     private final HddsVolume volume;
     private final SpaceUsageSource.Fixed usage;
     private final long effectiveUsed;
-    private final Double utilization;
+    private final double utilization;
 
     private VolumeFixedUsage(HddsVolume volume, long delta) {
       this.volume = volume;
       this.usage = volume.getCurrentUsage();
       this.effectiveUsed = computeEffectiveUsage(usage, 
volume.getCommittedBytes(), delta);
-      this.utilization = usage.getCapacity() > 0 ? computeUtilization(usage, 
volume.getCommittedBytes(), delta) : null;
+      this.utilization = usage.getCapacity() > 0
+          ? computeUtilization(usage, volume.getCommittedBytes(), delta)
+          : 0.0;
     }
 
     public HddsVolume getVolume() {
@@ -189,7 +190,7 @@ public long getEffectiveUsed() {
     }
 
     public double getUtilization() {
-      return Objects.requireNonNull(utilization,  "utilization == null");
+      return utilization;
     }
 
     public long computeUsableSpace() {
diff --git 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/diskbalancer/TestDiskBalancerVolumeCalculation.java
 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/diskbalancer/TestDiskBalancerVolumeCalculation.java
index a32da8a3de9..4289af7afb7 100644
--- 
a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/diskbalancer/TestDiskBalancerVolumeCalculation.java
+++ 
b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/diskbalancer/TestDiskBalancerVolumeCalculation.java
@@ -83,6 +83,26 @@ void calculateVolumeDataDensityIgnoresZeroCapacityVolumes()
             Arrays.asList(zeroCapacity, lowUsage, highUsage)), 0.0);
   }
 
+  @Test
+  void getUtilizationReturnsZeroForZeroCapacityVolume()
+      throws IOException {
+    HddsVolume volume = createVolume("zero-capacity-utilization", 0, 0);
+
+    assertEquals(0.0, DiskBalancerVolumeCalculation.newVolumeFixedUsage(
+        volume, null).getUtilization());
+  }
+
+  @Test
+  void buildVolumeReportProtoReportsZeroUtilizationForZeroCapacityVolume()
+      throws IOException {
+    HddsVolume volume = createVolume("zero-capacity-report", 0, 0);
+
+    assertEquals(0.0, DiskBalancerService.buildVolumeReportProto(
+        Collections.singletonList(
+            DiskBalancerVolumeCalculation.newVolumeFixedUsage(volume, null)))
+        .get(0).getUtilization());
+  }
+
   @Test
   void getIdealUsageRejectsNegativeCapacity() throws IOException {
     HddsVolume negativeCapacityVolume = createVolume(


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

Reply via email to