From 174792813aaa0d51de721c6dfe6d299ff7e03ab6 Mon Sep 17 00:00:00 2001 From: Fintan Halpenny Date: Mon, 28 Jul 2025 10:30:45 +0100 Subject: [PATCH] node: register backtrace To better help debugging when things go wrong after `radicle-node` crashes, `RUST_BACKTRACE` is registered in the `main`. According to this [StackOverflow answer][so], this should not affect performance [so]: https://stackoverflow.com/questions/29421727/how-much-overhead-does-rust-backtrace-1-have/45402131#45402131 --- crates/radicle-node/src/main.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/crates/radicle-node/src/main.rs b/crates/radicle-node/src/main.rs index 08e19e01..cc789b13 100644 --- a/crates/radicle-node/src/main.rs +++ b/crates/radicle-node/src/main.rs @@ -131,6 +131,14 @@ fn execute() -> anyhow::Result<()> { } fn main() { + // If `RUST_BACKTRACE` does not have a value, then we set it to capture + // backtraces for better debugging, otherwise we keep the environments + // value. + const RUST_BACKTRACE: &str = "RUST_BACKTRACE"; + if std::env::var_os(RUST_BACKTRACE).is_none() { + std::env::set_var(RUST_BACKTRACE, "1"); + } + if let Err(err) = execute() { if log::log_enabled!(target: "node", log::Level::Error) { log::error!(target: "node", "Fatal: {err:#}");