From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id EAE6B1FF0F0 for ; Mon, 03 Aug 2026 17:23:49 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 73E3C2134C; Mon, 03 Aug 2026 17:23:49 +0200 (CEST) From: Fiona Ebner To: pve-devel@lists.proxmox.com Subject: [PATCH qemu-server] hotplug pending: use machine type from running instance to avoid mismatch Date: Mon, 3 Aug 2026 17:22:00 +0200 Message-ID: <20260803152342.208291-1-f.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1785770614844 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.149 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_LOW -0.7 Sender listed at https://www.dnswl.org/, low trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: T46JCL67P6XFUOJYSRW5BARH3YBSIH4R X-Message-ID-Hash: T46JCL67P6XFUOJYSRW5BARH3YBSIH4R X-MailFrom: f.ebner@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The machine version from the configuration might be using the 'latest' version, in which case the currently running machine version might be different from the version of the installed QEMU binary. This is an issue, because sub-calls of vmconfig_hotplug_pending() like print_drivedevice_full() use the binary version as a fallback when there is an unresolved 'latest' version. Hotplug needs to respect the current running machine version for migration compatibility. This also allows simplifying the call for the USB hotplug check, because the 'latest' version is now already resolved to the explicit version. Signed-off-by: Fiona Ebner --- src/PVE/QemuServer.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/PVE/QemuServer.pm b/src/PVE/QemuServer.pm index 9aec7f9c..d8dd9ea1 100644 --- a/src/PVE/QemuServer.pm +++ b/src/PVE/QemuServer.pm @@ -4602,7 +4602,7 @@ sub vmconfig_hotplug_pending { my $defaults = load_defaults(); my $arch = PVE::QemuServer::Helpers::get_vm_arch($conf); - my $machine_type = PVE::QemuServer::Machine::get_vm_machine($conf); + my $machine_type = PVE::QemuServer::Machine::get_current_qemu_machine($vmid); # commit values which do not have any impact on running VM first # Note: those option cannot raise errors, we we do not care about @@ -4701,7 +4701,7 @@ sub vmconfig_hotplug_pending { my $is_usb_hotplug_supported = sub { return $usb_hotplug if defined($usb_hotplug); my $ostype = $conf->{ostype}; - my $version = extract_version($machine_type, get_running_qemu_version($vmid)); + my $version = PVE::QemuServer::Machine::extract_version($machine_type); $usb_hotplug = $hotplug_features->{usb} && min_version($version, 7, 1) -- 2.47.3