Bug #1688

Core Dump file not available unless `--disable-charmdebug` is used while building.

Added by Nitin Bhat over 1 year ago. Updated 1 day ago.

Target version:
Start date:
Due date:
% Done:




While building charm with debug symbols without production mode, CMK_CHARMDEBUG is turned on and this leads to Charm error handling throwing errors when bad signals are encountered during program execution. Although a stack trace is printed by charm error handling, it is sometimes incomplete and not as useful as having a core dump. The fix is to have a dump file generated even when charm error handling is used to handle bad signals.


#1 Updated by Eric Bohm over 1 year ago

  • Assignee set to Kavitha Chandrasekar

#2 Updated by Sam White 10 months ago

  • Target version set to 6.9.1

#3 Updated by Evan Ramos 5 days ago

For which machine layer(s) is this a problem? I see sigaction calls in the MPI, netlrts, and Verbs layers. The MPI machine layer unconditionally intercepts signal handlers with CMK_CHARMDEBUG. The other two can avoid the signal handling by specifying the hidden option ++debug directly to the program binary.

#4 Updated by Evan Ramos 1 day ago

The three machine layers I mentioned have something like this in their signal handler:

static void KillOnAllSigs(int sigNo) {
  // ...

    CmiAbortHelper("Caught Signal", strsignal(sigNo), NULL, 1, 1);
static void KillOnAllSigs(int sigNo)
  // ...

    Cmi_truecrash = 0;
    CmiAbortHelper("Caught Signal", sig, suggestion, 0, 1);

Is the intent of this issue to essentially make Cmi_truecrash unconditionally active? I think this makes sense, because if an error occurs we should not hide it from anything depending on the exit status of the program.

Also available in: Atom PDF