From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id 0ADE51FF0E1 for ; Mon, 13 Jul 2026 15:24:37 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id D25EB2143B; Mon, 13 Jul 2026 15:24:36 +0200 (CEST) From: Robert Obkircher To: pbs-devel@lists.proxmox.com Subject: [PATCH v1 proxmox-backup 0/3] improve handling of bad S3 chunks during GC Date: Mon, 13 Jul 2026 15:22:23 +0200 Message-ID: <20260713132338.170565-1-r.obkircher@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: 1783949026468 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.350 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_LOW -0.7 Sender listed at https://www.dnswl.org/, low 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: WHAQQLUXARYVJC6QT6JYVKGZUTHUULFW X-Message-ID-Hash: WHAQQLUXARYVJC6QT6JYVKGZUTHUULFW X-MailFrom: r.obkircher@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: Fix an issue where the local path of .i.bad files was computed incorrectly, and refactor the related code a bit. I discovered this issue while grepping for "unsafe" to see if it would make sense to (explicitly) depend on the zerocopy crate for the index file readers. The removed unsafe statement in the first patch looked suspicious because it could have been out-of-bounds if to_string_lossy wasn't guaranteed to be called on an utf8 OsStr. Robert Obkircher (3): datastore: fix local path for .i.bad chunk files during S3 GC datastore: check that .i.bad files from S3 actually match that pattern datastore: introduce helper function to parse digest from S3ObjectKey pbs-datastore/src/chunk_store.rs | 21 +++++++++++------ pbs-datastore/src/datastore.rs | 39 ++++++++------------------------ pbs-datastore/src/s3.rs | 39 +++++++++++++++++++++++++++++--- 3 files changed, 60 insertions(+), 39 deletions(-) -- 2.47.3