diff --git a/server/src/main/java/com/cloud/storage/StorageManagerImpl.java b/server/src/main/java/com/cloud/storage/StorageManagerImpl.java index 4d2bfb47de1b..69f04393174c 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 @@ private boolean checkUsagedSpace(StoragePool pool) { } 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 8f88800d549f..f46699f88cfb 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 void testDiscoverObjectStoreInitializationFailure() { 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); + } }