[pbs-devel] [PATCH v8 proxmox-backup 38/69] pxar: show padding in debug output on archive list

Fabian Grünbichler f.gruenbichler at proxmox.com
Tue Jun 4 10:34:25 CEST 2024


On May 28, 2024 11:42 am, Christian Ebner wrote:
> 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 7:
> - include missing `last` variable declaration
> 
> changes since version 6:
> - no changes
> 
>  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 17e468062..b5a5bbe9f 100644
> --- a/pxar-bin/src/main.rs
> +++ b/pxar-bin/src/main.rs
> @@ -9,6 +9,7 @@ use std::sync::Arc;
>  use anyhow::{bail, format_err, Error};
>  use futures::future::FutureExt;
>  use futures::select;
> +use pxar::EntryKind;

nit: this is one of our crates, so should go below next to pathpatterns

>  use tokio::signal::unix::{signal, SignalKind};
>  
>  use pathpatterns::{MatchEntry, MatchType, PatternFlag};
> @@ -475,10 +476,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
> 
> 
> 
> _______________________________________________
> pbs-devel mailing list
> pbs-devel at lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel
> 
> 
> 




More information about the pbs-devel mailing list