From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 70FF51FF13C for ; Thu, 30 Apr 2026 16:00:16 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 46565A860; Thu, 30 Apr 2026 16:00:16 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Subject: [PATCH proxmox-backup] api: backup: cleanup backup group created by benchmark Date: Thu, 30 Apr 2026 15:59:31 +0200 Message-ID: <20260430135931.722979-1-c.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: 1777557482787 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.070 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment 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: QWH4BRMREZL3IW7YBMIIZARQQR4YWVEQ X-Message-ID-Hash: QWH4BRMREZL3IW7YBMIIZARQQR4YWVEQ X-MailFrom: c.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 Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The benchmark creates it's own backup group host/benchmark, failed however to auto-cleanup the group after itself, because since commit 23be00a42 ("fix #3336: datastore: remove group if the last snapshot is removed"), cleanup requires an exclusive lock on the backup group for destroying it. The backup environment however already holds the exclusive lock to disallow concurrent backups to the same group. To fix this, drop the locks held in the backup environment by dropping the environment itself and rely on the cleanup to reacquire them again. Fixes: https://forum.proxmox.com/threads/183138/ Signed-off-by: Christian Ebner --- src/api2/backup/mod.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/api2/backup/mod.rs b/src/api2/backup/mod.rs index 86ec49487..8848ca99c 100644 --- a/src/api2/backup/mod.rs +++ b/src/api2/backup/mod.rs @@ -288,9 +288,14 @@ fn upgrade_to_backup_protocol( if benchmark { env.log("benchmark finished successfully"); proxmox_async::runtime::block_in_place(|| { - env.datastore.remove_backup_dir( - env.backup_dir.backup_ns(), - env.backup_dir.as_ref(), + let datastore = env.datastore.clone(); + let namespace = env.backup_dir.backup_ns().clone(); + let snapshot = env.backup_dir.dir().clone(); + // draps all locks + drop(env); + datastore.remove_backup_dir( + &namespace, + &snapshot, true, ) })?; -- 2.47.3