From 86b5e1a72fe7e445283a4193529325e7b4cc573d Mon Sep 17 00:00:00 2001 From: Oran Agra Date: Wed, 7 Oct 2020 20:28:57 +0300 Subject: [PATCH] Add some additional signal info to the crash log (#7891) - si_code can be very useful info some day. - a clear indication that redis was killed by an external user (cherry picked from commit f659d236196ec57b02148031f425cf8864ed77ad) --- src/debug.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/debug.c b/src/debug.c index 1a41574e4..7112ff535 100644 --- a/src/debug.c +++ b/src/debug.c @@ -1627,7 +1627,7 @@ void sigsegvHandler(int sig, siginfo_t *info, void *secret) { bugReportStart(); serverLog(LL_WARNING, - "Redis %s crashed by signal: %d", REDIS_VERSION, sig); + "Redis %s crashed by signal: %d, si_code: %d", REDIS_VERSION, sig, info->si_code); if (eip != NULL) { serverLog(LL_WARNING, "Crashed running the instruction at: %p", eip); @@ -1636,6 +1636,9 @@ void sigsegvHandler(int sig, siginfo_t *info, void *secret) { serverLog(LL_WARNING, "Accessing address: %p", (void*)info->si_addr); } + if (info->si_pid != -1) { + serverLog(LL_WARNING, "Killed by PID: %d, UID: %d", info->si_pid, info->si_uid); + } serverLog(LL_WARNING, "Failed assertion: %s (%s:%d)", server.assert_failed, server.assert_file, server.assert_line);