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 38c7c62d2270b4921219953aaabfcdc721154b88)
This commit is contained in:
Oran Agra 2020-10-07 20:28:57 +03:00
parent 6e03b388ce
commit 9cf7292ef7

View File

@ -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);