Compare commits

..

2 Commits

Author SHA1 Message Date
dependabot[bot]
255d79bb59 Bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21 11:05:14 +00:00
fc10c4c576 Log backtrace and error chain in custom handler
Some checks failed
Build docker image / Build-Docker-Image (push) Has been cancelled
rust-clippy analyze / Run rust-clippy analyzing (push) Has been cancelled
2025-10-26 19:28:25 +01:00
3 changed files with 42 additions and 3 deletions

View File

@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

View File

@@ -28,7 +28,7 @@ jobs:
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@v6
- name: Install Rust toolchain
uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af #@v1

View File

@@ -32,7 +32,46 @@ where
return;
}
log::error!("{}: {:?}", self.text, error);
let backtrace = std::backtrace::Backtrace::force_capture();
let error_chain = if let Some(std_error) =
(&error as &dyn std::any::Any).downcast_ref::<Box<dyn std::error::Error>>()
{
let mut chain = Vec::new();
let mut source = std_error.source();
while let Some(err) = source {
chain.push(format!(" Caused by: {}", err));
source = err.source();
}
if chain.is_empty() {
String::new()
} else {
format!("\nError chain:\n{}", chain.join("\n"))
}
} else {
String::new()
};
let backtrace_info = match backtrace.status() {
std::backtrace::BacktraceStatus::Captured => {
format!("\nBacktrace:\n{}", backtrace)
}
std::backtrace::BacktraceStatus::Disabled => {
"\nBacktrace: disabled (compile with debug info for stack traces)".to_string()
}
std::backtrace::BacktraceStatus::Unsupported => {
"\nBacktrace: unsupported on this platform".to_string()
}
_ => String::new(),
};
log::error!(
"{}: {:?}{}{}",
self.text,
error,
error_chain,
backtrace_info
);
})
}
}