From 8009da73f17ad3ca695be6c1067ba3742aefc4db Mon Sep 17 00:00:00 2001 From: Wolfgang Bumiller Date: Mon, 14 Apr 2025 13:59:53 +0200 Subject: [PATCH] fix #6317: backup: use correct cleanup_fleecing_images helper The local one is specific for `allocate_fleecing_images` and has a comment stating to use the one from `PVE::QemuConfig` in all other cases. The `cleanup` sub already called this, but only if the VM was running. We do allocate fleecing images for previously-stopped VMs as well, though, so we also need to do the cleanup. As for the `detach_fleecing_images()` call: while could have stayed in the `vm_running_locall()` branch, it also performs this check and this way the entire fleecing cleanup stays together in one place. Signed-off-by: Wolfgang Bumiller --- PVE/VZDump/QemuServer.pm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/PVE/VZDump/QemuServer.pm b/PVE/VZDump/QemuServer.pm index 4860798e..10514f75 100644 --- a/PVE/VZDump/QemuServer.pm +++ b/PVE/VZDump/QemuServer.pm @@ -1267,15 +1267,17 @@ sub cleanup { } $detach_tpmstate_drive->($task, $vmid); - if ($task->{'use-fleecing'}) { + } + + if ($task->{'use-fleecing'}) { + eval { detach_fleecing_images($task->{disks}, $vmid); PVE::QemuConfig::cleanup_fleecing_images( $vmid, $self->{storecfg}, sub { $self->log($_[0], $_[1]); }); - } + }; + $self->log('warn', "attempt to clean up fleecing images failed - $@") if $@; } - cleanup_fleecing_images($self, $task->{disks}) if $task->{'use-fleecing'}; - if ($self->{qmeventd_fh}) { close($self->{qmeventd_fh}); }