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 7E0B51FF183 for ; Wed, 5 Nov 2025 13:23:08 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id B3DC6228B2; Wed, 5 Nov 2025 13:23:44 +0100 (CET) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Wed, 5 Nov 2025 13:22:33 +0100 Message-ID: <20251105122233.439382-24-c.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251105122233.439382-1-c.ebner@proxmox.com> References: <20251105122233.439382-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1762345369497 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.047 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 Subject: [pbs-devel] [PATCH proxmox-backup v3 23/23] chunk store: never fail when trying to remove missing chunk file 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" Although this is an unexpected case, never fail if the chunk store marker is not there during removal from cache in phase 2 of garbage collection for datastores with s3 backend (that codepath needs no further adaption). The chunk file might be missing for other reasons, e.g. after manual intervention in offline maintenance mode. On the other hand, phase 3 should fail on chunks which cannot be removed from the cache in e.g. out-of-space or permission issue cases. Signed-off-by: Christian Ebner --- changes since version 2: - not present in previous version pbs-datastore/src/chunk_store.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pbs-datastore/src/chunk_store.rs b/pbs-datastore/src/chunk_store.rs index 234b5e8e7..58195aef6 100644 --- a/pbs-datastore/src/chunk_store.rs +++ b/pbs-datastore/src/chunk_store.rs @@ -436,7 +436,7 @@ impl ChunkStore { Ok(stat) if stat.st_atime < min_atime => { // still protected by per-chunk file lock drop(lock); - let _ = cache.remove(&digest); + cache.remove(&digest)?; return Ok(()); } _ => return Ok(()), @@ -721,7 +721,12 @@ impl ChunkStore { pub(crate) fn remove_chunk(&self, digest: &[u8; 32]) -> Result<(), Error> { let (chunk_path, _digest_str) = self.chunk_path(digest); let _lock = self.mutex.lock(); - std::fs::remove_file(chunk_path).map_err(Error::from) + if let Err(err) = std::fs::remove_file(chunk_path) { + if err.kind() != std::io::ErrorKind::NotFound { + return Err(err.into()); + } + } + Ok(()) } pub fn relative_path(&self, path: &Path) -> PathBuf { -- 2.47.3 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel