[Users] trapping SEGFAULT in CarpetLib's backtrace routines

Roland Haas rhaas at illinois.edu
Tue Feb 9 17:42:52 CST 2021

Hello all,

I noticed that the routine request_backtrace in
CarpetLib/src/backtrace.cc only sets signal handlers for some of the
signals, namely:

void request_backtraces() {
  signal(SIGQUIT, signal_handler);
  signal(SIGILL, signal_handler);
  signal(SIGABRT, signal_handler);
  signal(SIGFPE, signal_handler);
  signal(SIGBUS, signal_handler);

which has the unfortunate side effect that in a test run of mine on
Stampede2 (2020_05 option lists, Intel MPI stack and compiler) no
backtrace was generated when I triggered a SEGFAULT.

The only indication for a SEGFAULT was the error number (11) reported by MPI.

Obviously adding 

  signal(SIGSEGV, signal_handler);

is trivial and it does indeed give a me a backtrace.

Given the simplicity I am wondering if there was a reason whey SIGSEGV
is not trapped by CarpetLib?


My email is as private as my paper mail. I therefore support encrypting
and signing email messages. Get my PGP key from http://pgp.mit.edu .
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
Url : http://lists.einsteintoolkit.org/pipermail/users/attachments/20210209/31cb8d4c/attachment.bin 

More information about the Users mailing list