From: Matan Breizman Date: Thu, 12 Jun 2025 12:32:38 +0000 (+0000) Subject: crimson/common/fatal_signal: Log error before collecting backtrace X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ec75b36f9fe4f84b3b98e6635e5c5dba6a11a184;p=ceph.git crimson/common/fatal_signal: Log error before collecting backtrace Signed-off-by: Matan Breizman --- diff --git a/src/crimson/common/fatal_signal.cc b/src/crimson/common/fatal_signal.cc index a5887f6de7b4..709c3d6a47ca 100644 --- a/src/crimson/common/fatal_signal.cc +++ b/src/crimson/common/fatal_signal.cc @@ -95,6 +95,17 @@ void FatalSignal::install_oneshot_signal_handler() // about e.g. sigreturn(2) calling; see the man page). constexpr std::size_t FRAMES_TO_SKIP = 2 + 1; + // Let's inform regarding the abort before getting the stacktrace + std::string pre_backtrace = fmt::format( + "Aborting {} on shard {} - Stopping all shards", + cause, + seastar::engine_is_ready() ? std::to_string(seastar::this_shard_id()) : "no shard"); + + GENERIC_ERROR("{}", pre_backtrace); + std::cerr << pre_backtrace << std::flush; + + seastar::engine().exit(1); + std::string backtrace = fmt::format("{} on shard {} \nBacktrace:\n {}", cause, seastar::engine_is_ready() ? std::to_string(seastar::this_shard_id()) : "no shard",