From 4175f1cb3f48443bb7b8a9636ef4fe662baac37a Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Fri, 13 Dec 2024 18:00:46 +0800 Subject: [PATCH 1/3] feat: Print debug source error instead Signed-off-by: Xuanwo --- crates/iceberg/src/error.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/iceberg/src/error.rs b/crates/iceberg/src/error.rs index 3f50acac28..51d4933c18 100644 --- a/crates/iceberg/src/error.rs +++ b/crates/iceberg/src/error.rs @@ -138,7 +138,7 @@ impl Display for Error { } if let Some(source) = &self.source { - write!(f, ", source: {source}")?; + write!(f, ", source: {source:?}")?; } Ok(()) @@ -173,7 +173,7 @@ impl Debug for Error { } if let Some(source) = &self.source { writeln!(f)?; - writeln!(f, "Source: {source:#}")?; + writeln!(f, "Source: {source:?}")?; } if self.backtrace.status() == BacktraceStatus::Captured { From 40c698864e1900b95f0c7b09764fc766ec82fab3 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Fri, 13 Dec 2024 18:15:58 +0800 Subject: [PATCH 2/3] Don't hide internal source error Signed-off-by: Xuanwo --- crates/iceberg/src/io/object_cache.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/iceberg/src/io/object_cache.rs b/crates/iceberg/src/io/object_cache.rs index 88e2d0e2d5..ede637d394 100644 --- a/crates/iceberg/src/io/object_cache.rs +++ b/crates/iceberg/src/io/object_cache.rs @@ -141,7 +141,15 @@ impl ObjectCache { .entry_by_ref(&key) .or_try_insert_with(self.fetch_and_parse_manifest_list(snapshot, table_metadata)) .await - .map_err(|err| Error::new(ErrorKind::Unexpected, err.as_ref().message()))? + .map_err(|err| { + Arc::try_unwrap(err).unwrap_or_else(|err| { + Error::new( + ErrorKind::Unexpected, + "Failed to load manifest list in cache", + ) + .with_source(err) + }) + })? .into_value(); match cache_entry { From 8b8c9286be4f86a8c77098c98ebc784782b305a3 Mon Sep 17 00:00:00 2001 From: Xuanwo Date: Fri, 13 Dec 2024 18:24:24 +0800 Subject: [PATCH 3/3] revert error fmt changes, not related Signed-off-by: Xuanwo --- crates/iceberg/src/error.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/iceberg/src/error.rs b/crates/iceberg/src/error.rs index 51d4933c18..3f50acac28 100644 --- a/crates/iceberg/src/error.rs +++ b/crates/iceberg/src/error.rs @@ -138,7 +138,7 @@ impl Display for Error { } if let Some(source) = &self.source { - write!(f, ", source: {source:?}")?; + write!(f, ", source: {source}")?; } Ok(()) @@ -173,7 +173,7 @@ impl Debug for Error { } if let Some(source) = &self.source { writeln!(f)?; - writeln!(f, "Source: {source:?}")?; + writeln!(f, "Source: {source:#}")?; } if self.backtrace.status() == BacktraceStatus::Captured {