diff --git a/src/backend/distributed/Makefile b/src/backend/distributed/Makefile index 99ad9e365..3f92b4c2d 100644 --- a/src/backend/distributed/Makefile +++ b/src/backend/distributed/Makefile @@ -47,7 +47,8 @@ utils/citus_version.o: $(CITUS_VERSION_INVALIDATE) SHLIB_LINK += $(filter -lssl -lcrypto -lssleay32 -leay32, $(LIBS)) -override CPPFLAGS += -I$(libpq_srcdir) -I$(safestringlib_srcdir)/include +override LDFLAGS += /usr/lib/gcc/x86_64-linux-gnu/7/libbacktrace.a +override CPPFLAGS += -I$(libpq_srcdir) -I$(safestringlib_srcdir)/include -I/usr/lib/gcc/x86_64-linux-gnu/7/include/ SQL_DEPDIR=.deps/sql SQL_BUILDDIR=build/sql diff --git a/src/backend/distributed/shared_library_init.c b/src/backend/distributed/shared_library_init.c index e4cd7b789..9de3cd71f 100644 --- a/src/backend/distributed/shared_library_init.c +++ b/src/backend/distributed/shared_library_init.c @@ -21,6 +21,8 @@ #include "fmgr.h" #include "miscadmin.h" +#include "backtrace-supported.h" +#include "backtrace.h" #include "safe_lib.h" #include "citus_version.h" @@ -366,6 +368,9 @@ multi_log_hook(ErrorData *edata) edata->message = "canceling the transaction since it was " "involved in a distributed deadlock"; } + + struct backtrace_state* m = backtrace_create_state(NULL, 0 , NULL, NULL); + backtrace_full(m, 0, NULL, NULL, NULL); }