[pbs-devel] [PATCH v9 proxmox-backup 39/58] pxar: bin: show padding in debug output on archive list

Christian Ebner c.ebner at proxmox.com
Wed Jun 5 12:53:57 CEST 2024


In addition to the entries, also show the padding encountered in-between
referenced payloads.

Example invocation: `PXAR_LOG=debug pxar list archive.mpxar`

Signed-off-by: Christian Ebner <c.ebner at proxmox.com>
---
changes since version 8:
- prefix subject with `pxar: bin` instead of `pxar` only
- move use statement to correct location

 pxar-bin/src/main.rs | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/pxar-bin/src/main.rs b/pxar-bin/src/main.rs
index bb57cf374..52bb1ca97 100644
--- a/pxar-bin/src/main.rs
+++ b/pxar-bin/src/main.rs
@@ -16,6 +16,7 @@ use pbs_client::pxar::{
     format_single_line_entry, Flags, OverwriteFlags, PxarExtractOptions, PxarWriters,
     ENCODER_MAX_ENTRIES,
 };
+use pxar::EntryKind;
 
 use proxmox_router::cli::*;
 use proxmox_schema::api;
@@ -483,10 +484,28 @@ fn dump_archive(archive: String, payload_input: Option<String>) -> Result<(), Er
         pxar::PxarVariant::Unified(archive)
     };
 
+    let mut last = None;
     for entry in pxar::decoder::Decoder::open(input)? {
         let entry = entry?;
 
         if log::log_enabled!(log::Level::Debug) {
+            match entry.kind() {
+                EntryKind::File {
+                    payload_offset: Some(offset),
+                    size,
+                    ..
+                } => {
+                    if let Some(last) = last {
+                        let skipped = offset - last;
+                        if skipped > 0 {
+                            log::debug!("Encountered padding of {skipped} bytes");
+                        }
+                    }
+                    last = Some(offset + size + std::mem::size_of::<pxar::format::Header>() as u64);
+                }
+                _ => (),
+            }
+
             log::debug!("{}", format_single_line_entry(&entry));
         } else {
             log::info!("{:?}", entry.path());
-- 
2.39.2





More information about the pbs-devel mailing list