* [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 an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.