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

Filip Schauer f.schauer at proxmox.com
Wed Aug 23 12:58:39 CEST 2023


When migrating a VM that suspended itself via ACPI, it will no longer be
resumed automatically.

Signed-off-by: Filip Schauer <f.schauer at proxmox.com>
---
 PVE/QemuMigrate.pm |  2 +-
 PVE/QemuServer.pm  | 10 ++++++++++
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index 506911e..d9aeca8 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -223,7 +223,7 @@ sub prepare {
 	    }
 	}
 
-	$self->{vm_was_paused} = 1 if PVE::QemuServer::vm_is_paused($vmid);
+	$self->{vm_was_paused} = 1 if (PVE::QemuServer::vm_is_paused($vmid) or PVE::QemuServer::vm_is_suspended($vmid));
     }
 
     my ($loc_res, $mapped_res, $missing_mappings_by_node) = PVE::QemuServer::check_local_resources($conf, 1);
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index bf1de17..866b585 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -8599,6 +8599,16 @@ sub vm_is_paused {
     return $qmpstatus && $qmpstatus->{status} eq "paused";
 }
 
+sub vm_is_suspended {
+    my ($vmid) = @_;
+    my $qmpstatus = eval {
+       PVE::QemuConfig::assert_config_exists_on_node($vmid);
+       mon_cmd($vmid, "query-status");
+    };
+    warn "$@\n" if $@;
+    return $qmpstatus && $qmpstatus->{status} eq "suspended";
+}
+
 sub check_volume_storage_type {
     my ($storecfg, $vol) = @_;
 
-- 
2.39.2






More information about the pve-devel mailing list