From a5372a98dcf2ef623e72df3c72d55ed2434d8a84 Mon Sep 17 00:00:00 2001 From: Nicolas Vazquez Date: Sat, 16 Oct 2021 00:09:54 -0300 Subject: [PATCH] Fix storage cleanup corner case preventing VM deletion (#5575) * Fix storage cleanup corner case * Improve deletion * Refactor --- .../org/apache/cloudstack/storage/volume/VolumeServiceImpl.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java b/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java index 3bacaee5b81..92526846729 100644 --- a/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java +++ b/engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java @@ -1869,6 +1869,7 @@ public class VolumeServiceImpl implements VolumeService { long sourceVolumeId = sourceVolume.getId(); volDao.updateUuid(sourceVolumeId, destinationVolume.getId()); + volDao.detachVolume(sourceVolumeId); s_logger.info(String.format("Cleaning up %s on storage [%s].", sourceVolumeVo.getVolumeDescription(), sourceVolumeVo.getPoolId())); destroyVolume(sourceVolumeId); @@ -2063,6 +2064,7 @@ public class VolumeServiceImpl implements VolumeService { srcVolume.processEvent(Event.OperationSuccessed); destVolume.processEvent(Event.MigrationCopySucceeded, result.getAnswer()); volDao.updateUuid(srcVolume.getId(), destVolume.getId()); + volDao.detachVolume(srcVolume.getId()); try { destroyVolume(srcVolume.getId()); srcVolume = volFactory.getVolume(srcVolume.getId());