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 C573A1FF0AA for ; Tue, 06 Oct 2026 10:59:44 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 903B821596; Tue, 06 Oct 2026 10:59:42 +0200 (CEST) From: Fiona Ebner To: pve-devel@lists.proxmox.com Subject: [PATCH qemu-server v2 1/2] hotplug pending: use machine type from running instance to avoid mismatch Date: Tue, 6 Oct 2026 10:58:32 +0200 Message-ID: <20261006085936.30542-2-f.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261006085936.30542-1-f.ebner@proxmox.com> References: <20261006085936.30542-1-f.ebner@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1791277179503 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.464 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_MED -2.3 Sender listed at https://www.dnswl.org/, medium 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: WMHBQTHGFWNJVOCU5XQYMOLEF4LFNUTF X-Message-ID-Hash: WMHBQTHGFWNJVOCU5XQYMOLEF4LFNUTF 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 --- No changes in v2. 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 f199371d..758f9d99 100644 --- a/src/PVE/QemuServer.pm +++ b/src/PVE/QemuServer.pm @@ -4569,7 +4569,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 @@ -4668,7 +4668,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