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 12C691FF142 for ; Fri, 03 Jul 2026 13:55:09 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 5F49A21255; Fri, 03 Jul 2026 13:55:08 +0200 (CEST) From: Fiona Ebner To: pve-devel@lists.proxmox.com Subject: [PATCH-SERIES qemu-server v2 0/3] fix #7743: api: disk import: avoid locking twice when importing from OVA or same VM Date: Fri, 3 Jul 2026 13:54:15 +0200 Message-ID: <20260703115432.108667-1-f.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1783079667523 X-SPAM-LEVEL: Spam detection results: 0 DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) 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: EADSKMJOGEVDJQFN4KLQKVA54RRHFLPY X-Message-ID-Hash: EADSKMJOGEVDJQFN4KLQKVA54RRHFLPY 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: Changes in v2: * Better describe original issue in commit message. * Add Dominik's R-b and Manuel's T-b. When import_from_volid->() is called, the VM configuration of the destination VM is already locked. In case the source volume belongs to the same VM, there would be a second attempt to lock the config. In particular, this also happens when importing from OVA, because the source image is first extracted and belongs to the same VM. The reason for bug #7743 is that the API call will lock before forking a worker in the POST case, making a second lock attempt from the different process fail. In the PUT case, the second lock attempt will still succeed, because the lock is cached within the process in PVE::Tools::lock_file_full(). So there also is a patch to change the order of lock+fork around using the usual early+repeated checks pattern. qemu-server: Fiona Ebner (3): api: disk import: remove unused wrongly named variable fix #7743: api: disk import: avoid locking twice when importing from OVA or same VM api: update vm: fork before locking src/PVE/API2/Qemu.pm | 780 ++++++++++++++++++++++--------------------- 1 file changed, 397 insertions(+), 383 deletions(-) Summary over all repositories: 1 files changed, 397 insertions(+), 383 deletions(-) -- Generated by git-murpp 0.5.0