diff --git a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java index 565c3f2101a..5ad9f5e5ddf 100644 --- a/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java +++ b/engine/orchestration/src/main/java/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java @@ -1186,7 +1186,8 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati s_logger.error(String.format("Unable to destroy existing volume [%s] due to [%s].", volumeToString, e.getMessage())); } // In case of VMware VM will continue to use the old root disk until expunged, so force expunge old root disk - if (vm.getHypervisorType() == HypervisorType.VMware) { + // For system VM we do not need volume entry in Destroy state + if (vm.getHypervisorType() == HypervisorType.VMware || vm.getType().isUsedBySystem()) { s_logger.info(String.format("Trying to expunge volume [%s] from primary data storage.", volumeToString)); AsyncCallFuture future = volService.expungeVolumeAsync(volFactory.getVolume(existingVolume.getId())); try {