From a4e2f03ae7aec8660f5b05cdb885045503416cfe Mon Sep 17 00:00:00 2001 From: Sait Talha Nisanci Date: Mon, 6 Jul 2020 12:00:01 +0300 Subject: [PATCH] wip --- src/backend/distributed/shared_library_init.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/backend/distributed/shared_library_init.c b/src/backend/distributed/shared_library_init.c index e35c75246..6a9e90c31 100644 --- a/src/backend/distributed/shared_library_init.c +++ b/src/backend/distributed/shared_library_init.c @@ -21,6 +21,7 @@ #include "fmgr.h" #include "miscadmin.h" +#include "execinfo.h" #include "safe_lib.h" #include "citus_version.h" @@ -367,12 +368,20 @@ multi_log_hook(ErrorData *edata) "involved in a distributed deadlock"; } - - void *buf[100]; - int nframes; + StringInfo * newStr = makeStringInfo(); + appendStringInfoString(newStr, edata->message); nframes = backtrace(buf, lengthof(buf)); - backtrace_symbols_fd(buf, nframes, fileno(stderr)); + // backtrace_symbols_fd(buf, nframes, fileno(stderr)); + char** strings = backtrace_symbols(buf, nframes); + + if (strings) { + for (int i = 0; i < nframes; i++) { + appendStringInfoChar(newStr, '\n'); + appendStringInfoString(newStr, strings[i]); + } + } + edata->message = newStr->data; }