* [PATCH v1 proxmox-backup 0/3] index file inspection fixes
@ 2026-04-28 12:21 Robert Obkircher
2026-04-28 12:21 ` [PATCH v1 proxmox-backup 1/3] datastore: read ctime from didx header instead of using current time Robert Obkircher
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Robert Obkircher @ 2026-04-28 12:21 UTC (permalink / raw)
To: pbs-devel
Just to minor fixes for index file inspection and a small cleanup.
Robert Obkircher (3):
datastore: read ctime from didx header instead of using current time
datastore: remove unnecessary pointer dereference in didx reader
bin: debug: produce deterministic output when inspecting index files
pbs-datastore/src/dynamic_index.rs | 6 ++----
src/bin/proxmox_backup_debug/inspect.rs | 4 ++--
2 files changed, 4 insertions(+), 6 deletions(-)
--
2.47.3
^ permalink raw reply [flat|nested] 6+ messages in thread* [PATCH v1 proxmox-backup 1/3] datastore: read ctime from didx header instead of using current time 2026-04-28 12:21 [PATCH v1 proxmox-backup 0/3] index file inspection fixes Robert Obkircher @ 2026-04-28 12:21 ` Robert Obkircher 2026-04-28 14:13 ` Dominik Csapak 2026-04-28 12:21 ` [PATCH v1 proxmox-backup 2/3] datastore: remove unnecessary pointer dereference in didx reader Robert Obkircher ` (2 subsequent siblings) 3 siblings, 1 reply; 6+ messages in thread From: Robert Obkircher @ 2026-04-28 12:21 UTC (permalink / raw) To: pbs-devel It looks like this was accidentally changed during a refactor in 2020. The ctime field is public, so it is not obvious whether anyone depends on the broken behavior. The index_ctime accessor only seems to be used by inspect_file in proxmox_backup_debug. Fixes: 6a7be83efe ("avoid chrono dependency, depend on proxmox 0.3.8") Signed-off-by: Robert Obkircher <r.obkircher@proxmox.com> --- pbs-datastore/src/dynamic_index.rs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pbs-datastore/src/dynamic_index.rs b/pbs-datastore/src/dynamic_index.rs index e1ca0eae..288f38b5 100644 --- a/pbs-datastore/src/dynamic_index.rs +++ b/pbs-datastore/src/dynamic_index.rs @@ -119,8 +119,6 @@ impl DynamicIndexReader { bail!("got unknown magic number"); } - let ctime = proxmox_time::epoch_i64(); - let index_size = stat.st_size as usize - header_size; let index_count = index_size / 40; if index_count * 40 != index_size { @@ -141,7 +139,7 @@ impl DynamicIndexReader { _file: file, size, index, - ctime, + ctime: header.ctime, uuid: header.uuid, index_csum: header.index_csum, }) -- 2.47.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v1 proxmox-backup 1/3] datastore: read ctime from didx header instead of using current time 2026-04-28 12:21 ` [PATCH v1 proxmox-backup 1/3] datastore: read ctime from didx header instead of using current time Robert Obkircher @ 2026-04-28 14:13 ` Dominik Csapak 0 siblings, 0 replies; 6+ messages in thread From: Dominik Csapak @ 2026-04-28 14:13 UTC (permalink / raw) To: Robert Obkircher, pbs-devel On 4/28/26 2:25 PM, Robert Obkircher wrote: > It looks like this was accidentally changed during a refactor in 2020. > > The ctime field is public, so it is not obvious whether anyone depends > on the broken behavior. The index_ctime accessor only seems to be used > by inspect_file in proxmox_backup_debug. not a review, but I made the ctime field private and compiled with `cargo build --all` and `cargo test --all` and it showed now errors, so we can assume this field was never used directly only via the index_ctime accessor that said, the fix LGTM > > Fixes: 6a7be83efe ("avoid chrono dependency, depend on proxmox 0.3.8") > Signed-off-by: Robert Obkircher <r.obkircher@proxmox.com> > --- > pbs-datastore/src/dynamic_index.rs | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/pbs-datastore/src/dynamic_index.rs b/pbs-datastore/src/dynamic_index.rs > index e1ca0eae..288f38b5 100644 > --- a/pbs-datastore/src/dynamic_index.rs > +++ b/pbs-datastore/src/dynamic_index.rs > @@ -119,8 +119,6 @@ impl DynamicIndexReader { > bail!("got unknown magic number"); > } > > - let ctime = proxmox_time::epoch_i64(); > - > let index_size = stat.st_size as usize - header_size; > let index_count = index_size / 40; > if index_count * 40 != index_size { > @@ -141,7 +139,7 @@ impl DynamicIndexReader { > _file: file, > size, > index, > - ctime, > + ctime: header.ctime, > uuid: header.uuid, > index_csum: header.index_csum, > }) ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v1 proxmox-backup 2/3] datastore: remove unnecessary pointer dereference in didx reader 2026-04-28 12:21 [PATCH v1 proxmox-backup 0/3] index file inspection fixes Robert Obkircher 2026-04-28 12:21 ` [PATCH v1 proxmox-backup 1/3] datastore: read ctime from didx header instead of using current time Robert Obkircher @ 2026-04-28 12:21 ` Robert Obkircher 2026-04-28 12:21 ` [PATCH v1 proxmox-backup 3/3] bin: debug: produce deterministic output when inspecting index files Robert Obkircher 2026-04-28 13:59 ` applied: [PATCH v1 proxmox-backup 0/3] index file inspection fixes Thomas Lamprecht 3 siblings, 0 replies; 6+ messages in thread From: Robert Obkircher @ 2026-04-28 12:21 UTC (permalink / raw) To: pbs-devel The inner method already returns the correct reference type. Signed-off-by: Robert Obkircher <r.obkircher@proxmox.com> --- pbs-datastore/src/dynamic_index.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pbs-datastore/src/dynamic_index.rs b/pbs-datastore/src/dynamic_index.rs index 288f38b5..5959b0c8 100644 --- a/pbs-datastore/src/dynamic_index.rs +++ b/pbs-datastore/src/dynamic_index.rs @@ -196,7 +196,7 @@ impl IndexFile for DynamicIndexReader { if pos >= self.index.len() { None } else { - Some(unsafe { &*(self.chunk_digest(pos).as_ptr() as *const [u8; 32]) }) + Some(self.chunk_digest(pos)) } } -- 2.47.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v1 proxmox-backup 3/3] bin: debug: produce deterministic output when inspecting index files 2026-04-28 12:21 [PATCH v1 proxmox-backup 0/3] index file inspection fixes Robert Obkircher 2026-04-28 12:21 ` [PATCH v1 proxmox-backup 1/3] datastore: read ctime from didx header instead of using current time Robert Obkircher 2026-04-28 12:21 ` [PATCH v1 proxmox-backup 2/3] datastore: remove unnecessary pointer dereference in didx reader Robert Obkircher @ 2026-04-28 12:21 ` Robert Obkircher 2026-04-28 13:59 ` applied: [PATCH v1 proxmox-backup 0/3] index file inspection fixes Thomas Lamprecht 3 siblings, 0 replies; 6+ messages in thread From: Robert Obkircher @ 2026-04-28 12:21 UTC (permalink / raw) To: pbs-devel Sort the output to make it deterministic and easier to compare. Signed-off-by: Robert Obkircher <r.obkircher@proxmox.com> --- src/bin/proxmox_backup_debug/inspect.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/proxmox_backup_debug/inspect.rs b/src/bin/proxmox_backup_debug/inspect.rs index b5a7d3f2..221c9ebd 100644 --- a/src/bin/proxmox_backup_debug/inspect.rs +++ b/src/bin/proxmox_backup_debug/inspect.rs @@ -1,4 +1,4 @@ -use std::collections::HashSet; +use std::collections::BTreeSet; use std::fs::File; use std::io::{Read, Seek, SeekFrom, Write}; use std::path::Path; @@ -294,7 +294,7 @@ fn inspect_file( ctime_str = s; } - let mut chunk_digests = HashSet::new(); + let mut chunk_digests = BTreeSet::new(); for pos in 0..index.index_count() { let digest = index.index_digest(pos).unwrap(); -- 2.47.3 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* applied: [PATCH v1 proxmox-backup 0/3] index file inspection fixes 2026-04-28 12:21 [PATCH v1 proxmox-backup 0/3] index file inspection fixes Robert Obkircher ` (2 preceding siblings ...) 2026-04-28 12:21 ` [PATCH v1 proxmox-backup 3/3] bin: debug: produce deterministic output when inspecting index files Robert Obkircher @ 2026-04-28 13:59 ` Thomas Lamprecht 3 siblings, 0 replies; 6+ messages in thread From: Thomas Lamprecht @ 2026-04-28 13:59 UTC (permalink / raw) To: pbs-devel, Robert Obkircher On Tue, 28 Apr 2026 14:21:30 +0200, Robert Obkircher wrote: > Just to minor fixes for index file inspection and a small cleanup. > > Robert Obkircher (3): > datastore: read ctime from didx header instead of using current time > datastore: remove unnecessary pointer dereference in didx reader > bin: debug: produce deterministic output when inspecting index files > > [...] Applied, with minor follow-up to hedge us targetting a big-endiam platform someday (lets hope not), thanks! [1/3] datastore: read ctime from didx header instead of using current time commit: edc4bc6684bc052b5d9d72a074ed8ff6f9cf1717 [2/3] datastore: remove unnecessary pointer dereference in didx reader commit: 8563716bdef157b82413bb75b7f9dc38b75a6004 [3/3] bin: debug: produce deterministic output when inspecting index files commit: d80323360f56f7df829361f00aecba16af267729 ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-04-28 14:14 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-04-28 12:21 [PATCH v1 proxmox-backup 0/3] index file inspection fixes Robert Obkircher 2026-04-28 12:21 ` [PATCH v1 proxmox-backup 1/3] datastore: read ctime from didx header instead of using current time Robert Obkircher 2026-04-28 14:13 ` Dominik Csapak 2026-04-28 12:21 ` [PATCH v1 proxmox-backup 2/3] datastore: remove unnecessary pointer dereference in didx reader Robert Obkircher 2026-04-28 12:21 ` [PATCH v1 proxmox-backup 3/3] bin: debug: produce deterministic output when inspecting index files Robert Obkircher 2026-04-28 13:59 ` applied: [PATCH v1 proxmox-backup 0/3] index file inspection fixes Thomas Lamprecht
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox