Hide Forgot
Description of problem: The gist is that multi-threaded programs are killed or misbehave when traced by ltrace. ltrace needs to implements a proper support for tracing processes with shared address space. See bug 526007 for detailed analysis and fixes for this problem. That bug was cloned for z-stream, and that means that it will end up in mainline eventually, too. In order to avoid a regression, we have to fix this bug in RHEL 6, too. We ship mostly the same version of ltrace in RHEL 6 as in RHEL 5, so the effort in porting the patch series should be minor.
Note that bug 738254 lists a customer request for packaging ltrace 0.6 for RHEL 6. That would make the porting effort close to nil, the same ltrace version is in Fedora 16, and the threading fixes (modulo the vfork fix) have been included in that package, too.
This has now been forward-ported from RHEL 5 and is in the repository.
*** Bug 806241 has been marked as a duplicate of this bug. ***
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: When tracing processes with more than one thread, ltrace would neglect to trace threads other than the main thread. But because threads share address space, those other threads would still see breakpoints distributed by ltrace. Consequently, those threads would be killed by a signal SIGTRAP. This issue was fixed by implementing thread-awareness and breakpoint handling mechanisms. With this fix, support for tracing of multi-threaded processes is on par with tracing single-threaded process.
Technical note updated. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. Diffed Contents: @@ -1 +1,2 @@ -When tracing processes with more than one thread, ltrace would neglect to trace threads other than the main thread. But because threads share address space, those other threads would still see breakpoints distributed by ltrace. Consequently, those threads would be killed by a signal SIGTRAP. This issue was fixed by implementing thread-awareness and breakpoint handling mechanisms. With this fix, support for tracing of multi-threaded processes is on par with tracing single-threaded process.+Tracing of multi-threaded processes +When tracing processes with more than one thread, the ltrace utility would neglect to trace threads other than the main thread. But because threads share address space, those other threads would still see breakpoints distributed by ltrace. Consequently, those threads would be killed by a SIGTRAP signal. Red Hat Enterprise Linux 6.3 includes thread-awareness and breakpoint handling mechanisms. Support for tracing of multi-threaded processes is now on par with tracing single-threaded process.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2012-0926.html