From: Fabian Grünbichler Date: Mon, 21 Nov 2022 12:16:04 +0000 (+0100) Subject: vm_resume: fix nocheck/migrate handling X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=270bfff2e1f80cb2d33da2cb5407f48e6e84c5db;hp=c9a0924df8033a25d4ac97f944915bc854602a14;p=qemu-server.git vm_resume: fix nocheck/migrate handling it's not deterministic whether the rename/move of the VM config triggered on the source side of a migration is already visible on the target side when vm_resume is executed. check the vmlist for the node where the config is currently located if $nocheck is set - it is now needed to add the forwarding DB entries to the bridge. this fixes an issue on busier or slower clusters, where pmxcfs hasn't yet processed the rename, and resuming would fail with an error about the config not existing. Reported-by: Dominik Csapak Signed-off-by: Fabian Grünbichler --- diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 721633d..caaf1a5 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -6366,7 +6366,17 @@ sub vm_resume { my $res = mon_cmd($vmid, 'query-status'); my $resume_cmd = 'cont'; my $reset = 0; - my $conf = PVE::QemuConfig->load_config($vmid); + my $conf; + if ($nocheck) { + my $vmlist = PVE::Cluster::get_vmlist(); + my $node; + if (exists($vmlist->{ids}->{$vmid})) { + $node = $vmlist->{ids}->{$vmid}->{node}; + } + $conf = PVE::QemuConfig->load_config($vmid, $node); + } else { + $conf = PVE::QemuConfig->load_config($vmid); + } if ($res->{status}) { return if $res->{status} eq 'running'; # job done, go home @@ -6375,7 +6385,6 @@ sub vm_resume { } if (!$nocheck) { - PVE::QemuConfig->check_lock($conf) if !($skiplock || PVE::QemuConfig->has_lock($conf, 'backup')); }