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

DaanHoogland pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new a53c5ae2404 server: treat a zero-capacity storage pool as full (#14052)
a53c5ae2404 is described below

commit a53c5ae2404b2bc78f65534ada3f421024af94aa
Author: Ramgopal Nagaboina <[email protected]>
AuthorDate: Tue Sep 8 07:57:44 2026 -0400

    server: treat a zero-capacity storage pool as full (#14052)
---
 .../src/main/java/com/cloud/storage/StorageManagerImpl.java   |  3 +++
 .../test/java/com/cloud/storage/StorageManagerImplTest.java   | 11 +++++++++++
 2 files changed, 14 insertions(+)

diff --git a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java 
b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
index 4d2bfb47de1..69f04393174 100644
--- a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java
@@ -3444,6 +3444,9 @@ public class StorageManagerImpl extends ManagerBase 
implements StorageManager, C
         }
 
         long totalSize = pool.getCapacityBytes();
+        if (totalSize <= 0) {
+            return false;
+        }
         long usedSize = getUsedSize(pool);
         double usedPercentage = ((double)usedSize / (double)totalSize);
         double storageUsedThreshold = 
CapacityManager.StorageCapacityDisableThreshold.valueIn(pool.getId());
diff --git a/server/src/test/java/com/cloud/storage/StorageManagerImplTest.java 
b/server/src/test/java/com/cloud/storage/StorageManagerImplTest.java
index 8f88800d549..f46699f88cf 100644
--- a/server/src/test/java/com/cloud/storage/StorageManagerImplTest.java
+++ b/server/src/test/java/com/cloud/storage/StorageManagerImplTest.java
@@ -1716,4 +1716,15 @@ public class StorageManagerImplTest {
 
         storageManagerImpl.discoverObjectStore(name, url, size, providerName, 
details);
     }
+
+    @Test
+    public void checkUsagedSpaceReturnsFalseForZeroCapacityPool() {
+        StoragePool pool = Mockito.mock(StoragePool.class);
+        Mockito.when(pool.isManaged()).thenReturn(false);
+        Mockito.when(pool.getCapacityBytes()).thenReturn(0L);
+
+        Boolean result = ReflectionTestUtils.invokeMethod(storageManagerImpl, 
"checkUsagedSpace", pool);
+
+        Assert.assertFalse(result);
+    }
 }

Reply via email to