PDA

View Full Version : TotalView crashes with a segmentation fault on Linux.



Josh-TotalView-Tech
07-10-2006, 12:11 PM
There is a known Linux kernel bug that can cause TotalView to crash with a segmentation fault. The bug may exist on all Linux platforms for kernel versions between 2.4.18 and 2.4.20.
The problem is known to be present in the 2.4.20-8 kernel supplied with the standard RedHat 9 distribution as well as the 2.4.19 kernel included with SuSE Enterprise Linux 8 on the AMD Opteron platform. It was also briefly introduced into previous RedHat versions as a security patch. The following Red Hat kernel package versions are affected by the kernel bug (obtain your kernel version by running the command uname -r)" RedHat Linux 7.1 -- 2.4.18-27 RedHat Linux 7.2 -- 2.4.18-27 RedHat Linux 7.3 -- 2.4.18-27 RedHat Linux 8.0 -- 2.4.18-27 RedHat Linux 9.0 -- 2.4.20-8 Updated kernel packages are now available from Red Hat to address the kernel bug at: ftp://updates.redhat.com/7.1/en/os/i386/
More information about the update is available in the Red Hat Errata advisory RHSA-2003:187-25 (http://rhn.redhat.com/errata/RHSA-2003-187.html).
If you are not using Red Hat's kernel packages or are using a different distribution of Linux and believe you are encountering this problem, you can verify the kernel bug by checking the kernel log. The log file is usually stored as /var/log/messages. If you see messages similar to following in the log after the TotalView crash, your Linux kernel contains the bug: <1>Unable to handle kernel NULL pointer dereference at virtual address 00000074
printing eip:
c0122c63
...
Process tv6main (pid: 11103, stackpage=cb31b000)
Stack: c010c945 c74ec000 00000000 cb31bfc4 bfffe010 cb31bfa4 00000000 cb31a000
00000004 cb31a000 00000009 00000007 bfffe2b0 c0109147 00000007 00002b6f
00000001 00000009 00000007 bfffe2b0 0000001a 0000002b 0000002b 0000001a
Call Trace: [] sys_ptrace [kernel] 0xc5 (0xcb31bf8c))
...
The problem was resolved as of the Linux 2.4.21 release available from http://www.kernel.org (http://www.kernel.org/). If you would prefer to apply an isolated patch to your kernel sources, the solution is to change the definition of is_dumpable in include/linux/sched.h from: #define is_dumpable(tsk) \
((tsk)->task_dumpable && (tsk)->mm->dumpable)
to: #define is_dumpable(tsk) \
((tsk)->task_dumpable && (tsk)->mm && (tsk)->mm->dumpable)