[pve-devel] [PATCH v3 qemu-server] Fix ACPI-suspended VMs resuming after migration

Filip Schauer f.schauer at proxmox.com
Mon Oct 9 15:25:19 CEST 2023


Add checks for "suspended" and "prelaunch" runstates when checking
whether a VM is paused.

This fixes the following issues:
* ACPI-suspended VMs automatically resuming after migration
* Shutdown and reboot commands timing out instead of failing
  immediately on suspended VMs

Signed-off-by: Filip Schauer <f.schauer at proxmox.com>
---
Changes since v2:
* Make && and || operators consistent
* Revert rename vm_is_paused to vm_is_frozen

We could have renamed vm_is_paused to vcpus_are_paused, but I do not
consider that necessary.

 PVE/QemuServer.pm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 1b1ccf4..2895675 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -8503,7 +8503,11 @@ sub vm_is_paused {
 	mon_cmd($vmid, "query-status");
     };
     warn "$@\n" if $@;
-    return $qmpstatus && $qmpstatus->{status} eq "paused";
+    return $qmpstatus && (
+	$qmpstatus->{status} eq "paused" ||
+	$qmpstatus->{status} eq "suspended" ||
+	$qmpstatus->{status} eq "prelaunch"
+    );
 }
 
 sub check_volume_storage_type {
-- 
2.39.2






More information about the pve-devel mailing list