How to run GDB on cores and how to get a memory profile?
When a core file was generated from a process that for some reason was stopped, you can provide a stack trace for NuoDB support team by running this command:
$NUODB_HOME/etc/gdb/nuogdb --force -c <corefile> $NUODB_HOME/bin/nuodb
Please note $NUODB_HOME has to be set, <corefile> should include the full path for the core file.
The '--force' is to avoid this question: "Press [ENTER] to start the debugger, or [q] to quit ..."
This command will end with a prompt of (engine-type+NodeID) for example (te3) or (sm29), type 'bt' and enter, this will output the first thread stack trace that helps NuoDB support team with analysis. Please provide the output screen to the support team.
In case this core was generated due to OOM, the assertion should be like this:
FAILED: BUGCHECK: Unable to free memory for 300 seconds
You should generate the memory profile by:
(te3) p $profdump($mc)
This command (p $profdump($mc)) will generate a sub-directory with text files, the output will be like:
- Putting heap profiles in ip-xx-x-xx-xxx.region.something.something-PID-TE/SM-NodeId
Please collect the screen output from the first part and the generated directory with its content and share it with the NuoDB support team. NOTE: The heap profile does not contain any customer data or SQL information, it is safe to share with NuoDB.