From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 615CE9375D for ; Tue, 20 Feb 2024 11:29:34 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 3D91D498C for ; Tue, 20 Feb 2024 11:29:04 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS for ; Tue, 20 Feb 2024 11:29:03 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 37CEF43EEA for ; Tue, 20 Feb 2024 11:29:03 +0100 (CET) From: Gabriel Goller To: pbs-devel@lists.proxmox.com Date: Tue, 20 Feb 2024 11:28:51 +0100 Message-ID: <20240220102859.71349-3-g.goller@proxmox.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240220102859.71349-1-g.goller@proxmox.com> References: <20240220102859.71349-1-g.goller@proxmox.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.099 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [create.rs] Subject: [pbs-devel] [PATCH v2 proxmox-backup 2/4] pxar: remove ArchiveError X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Feb 2024 10:29:34 -0000 The sole purpose of the ArchiveError was to add the file-path to the error. Using anyhow::Error we can add this information using the context and don't need this struct anymore. Signed-off-by: Gabriel Goller --- pbs-client/src/pxar/create.rs | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/pbs-client/src/pxar/create.rs b/pbs-client/src/pxar/create.rs index 75376c0c..06f396e0 100644 --- a/pbs-client/src/pxar/create.rs +++ b/pbs-client/src/pxar/create.rs @@ -1,6 +1,5 @@ use std::collections::{HashMap, HashSet}; use std::ffi::{CStr, CString, OsStr}; -use std::fmt; use std::io::{self, Read}; use std::os::unix::ffi::OsStrExt; use std::os::unix::io::{AsRawFd, FromRawFd, IntoRawFd, OwnedFd, RawFd}; @@ -89,25 +88,11 @@ pub fn is_virtual_file_system(magic: i64) -> bool { SYSFS_MAGIC) } -#[derive(Debug)] -struct ArchiveError { - path: PathBuf, - error: Error, } -impl ArchiveError { - fn new(path: PathBuf, error: Error) -> Self { - Self { path, error } } } -impl std::error::Error for ArchiveError {} - -impl fmt::Display for ArchiveError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "error at {:?}: {}", self.path, self.error) - } -} #[derive(Eq, PartialEq, Hash)] struct HardLinkInfo { @@ -219,14 +204,6 @@ impl Archiver { self.feature_flags & self.fs_feature_flags } - fn wrap_err(&self, err: Error) -> Error { - if err.downcast_ref::().is_some() { - err - } else { - ArchiveError::new(self.path.clone(), err).into() - } - } - fn archive_dir_contents<'a, T: SeqWrite + Send>( &'a mut self, encoder: &'a mut Encoder<'_, T>, @@ -265,8 +242,7 @@ impl Archiver { (self.callback)(&file_entry.path)?; self.path = file_entry.path; self.add_entry(encoder, dir_fd, &file_entry.name, &file_entry.stat) - .await - .map_err(|err| self.wrap_err(err))?; + .await.context(format!("error at {:?}", self.path))?; } self.path = old_path; self.entry_counter = entry_counter; -- 2.43.0