Align error handling behavior when checking for linked clones with the
rest of destroy_vm's error handling approach. Unlike the LXC destroy
implementation, this version continues execution when encountering
errors during the check, since:

1. The same validation occurs later in the process
2. This prevents potential crashes
3. The VM removal will still be blocked if the volume has linked clones

Align error handling behavior when checking for linked clones with the
rest of destroy_vm's error handling approach. Unlike the LXC implementation,
this version continues execution when encountering errors during the check,
since:

Co-authored-by: Stefan Hrdlicka
Signed-off-by: Michael Köppl <m.koe...@proxmox.com>
---
 PVE/QemuServer.pm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 577959a4..e02bf7d4 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -2116,9 +2116,10 @@ sub destroy_vm {
                my $volid = $drive->{file};
                return if !$volid || $volid =~ m|^/|;
 
-               die "base volume '$volid' is still in use by linked cloned\n"
-                   if PVE::Storage::volume_is_base_and_used($storecfg, $volid);
-
+               # errors that occur during this check are not propagated since 
the
+               # same check is done again in vdisk_free
+               my $result = eval { 
PVE::Storage::volume_is_base_and_used($storecfg, $volid) };
+               die "base volume '$volid' is still in use by linked cloned\n" 
if $result;
        });
     }
 
-- 
2.39.5



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to