From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id E7CF21FF17E for ; Thu, 13 Nov 2025 15:21:35 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 42D2C1E1E4; Thu, 13 Nov 2025 15:22:29 +0100 (CET) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Thu, 13 Nov 2025 15:22:07 +0100 Message-ID: <20251113142214.719217-1-c.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1763043719035 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.048 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 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [PATCH proxmox-backup v3 0/7] wait for active operations to finish before s3 refresh X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" Datastore contents located on the s3 backend can be refreshed on the local datastore cache by running an s3-refresh, which will set the maintenance mode s3-refresh to block any read/write operation and fetch the contents to a temporary directory before moving them in place if the fetching was successful. Setting the maintenance mode has however no effect on already active operations, which can cause inconsistencies once the s3 refresh moves the temporary folders in place. Fix this by actively waiting for ongoing read/write operations to finish before starting with the s3-refresh and locking the datastore config while the refresh is ongoing, so the maintenance mode cannot be altered. Changes since version 2 (thanks @Fabian for review): - combine previously split helpers into common one - also guard s3-refresh during datastore recreaton Changes since version 1 (thanks @Fabian for review): - reuse and check for active operations based on unmount logic - reuse and check for correct maintenance mode based on unmount logic proxmox-backup: Christian Ebner (7): api: admin: drop useless option for do_unmount_device() parameter api: admin: rework waiting on active operations and maintenance locking api: admin: make s3 refresh handler sync datastore: s3 refresh: set/unset maintenance mode in api handler api: datastore: wait for active operations to clear before s3 refresh api: config: avoid unneeded backend instance on s3 store recreation api: config: guard s3-refresh on datastore recreation pbs-datastore/src/datastore.rs | 31 +------- src/api2/admin/datastore.rs | 127 +++++++++++++++++++++------------ src/api2/config/datastore.rs | 43 +++++------ 3 files changed, 98 insertions(+), 103 deletions(-) Summary over all repositories: 3 files changed, 98 insertions(+), 103 deletions(-) -- Generated by git-murpp 0.8.1 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel