From a5f16bec8e8a0a97bdb109189fd2a43e99f8dbe7 Mon Sep 17 00:00:00 2001 From: Fiona Ebner Date: Thu, 7 Nov 2024 17:51:30 +0100 Subject: [PATCH] backup: cleanup: check if VM is running before issuing QMP commands When the VM is only started for backup, the VM will be stopped at that point again. While the detach helpers do not warn about errors currently, that might change in the future. This is also in preparation for other cleanup QMP helpers that are more verbose about failure. Signed-off-by: Fiona Ebner --- PVE/VZDump/QemuServer.pm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/PVE/VZDump/QemuServer.pm b/PVE/VZDump/QemuServer.pm index b2ced154..c46e607c 100644 --- a/PVE/VZDump/QemuServer.pm +++ b/PVE/VZDump/QemuServer.pm @@ -1118,13 +1118,14 @@ sub snapshot { sub cleanup { my ($self, $task, $vmid) = @_; - $detach_tpmstate_drive->($task, $vmid); - - if ($task->{'use-fleecing'}) { - detach_fleecing_images($task->{disks}, $vmid); - cleanup_fleecing_images($self, $task->{disks}); + # If VM was started only for backup, it is already stopped now. + if (PVE::QemuServer::Helpers::vm_running_locally($vmid)) { + $detach_tpmstate_drive->($task, $vmid); + detach_fleecing_images($task->{disks}, $vmid) if $task->{'use-fleecing'}; } + cleanup_fleecing_images($self, $task->{disks}) if $task->{'use-fleecing'}; + if ($self->{qmeventd_fh}) { close($self->{qmeventd_fh}); }