Make trisul core dump upon crash
If you need to debug a trisul crash, a core dump is a valuable tool.
Request a checked build
The trisul executable that comes with the RPM or DEB package is stripped of debugging symbols. You can request Unleash Networks for a checked build, with all symbols intact. We will give you a file called trisul_checked built specifically for your platform.
Place the checked build in /usr/local/bin
Core file
Trisul is a setuid program. It starts up as root, but after completing privileged work, drops down to the user specified in the
Enable core dumping of setuid programs
Set the value of /proc/sys/fs/suid_dumpable to 2
[root@localhost ~]# cat /proc/sys/fs/suid_dumpable
0
[root@localhost ~]# echo 2 > /proc/sys/fs/suid_dumpable
[root@localhost ~]#
[root@localhost ~]# cat /proc/sys/fs/suid_dumpable
2
[root@localhost ~]#
Where is the core file ?
By default The core file will be placed in /tmp and will be called core.xxxx where //xxxx// is the PID of the trisul process that crashed. You can change this filename by modifying the /etc/sysctl.conf file.
Add the following lines to /etc/sysctl.conf
# core file will be called core.trisul.2239
kernel.core_pattern=/tmp/core.%e.%p
Reload config
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 0
...
...
kernel.core_pattern = /tmp/core.%e.%p
[root@localhost ~]#
When it crashes
Once Trisul crashes and you have located the core dump in /tmp, it is time to fire up gdb and determine the cause of the crash.
You must do this as root, because the saved core file is only readable by root.
gdb /usr/local/bin/trisul_checked /tmp/core.trisul.3297
(gdb) bt
.. prints the stack...
You may then send the stack trace to us so we can help fix the cause of the crash.