Red Hat Bugzilla – Bug 811147
Report correct crash_function in the crash sumary
Last modified: 2012-06-20 03:10:40 EDT
Description of problem: When a crash occurs on a machine that runs ABRT and the crashed application has multiple threads, the crash may be set to the name of function that was executed in the other thread that did not cause the crash. This may mislead the developer while triaging the bug. Version-Release number of selected component (if applicable): abrt version: 2.0.5 in rhel 6.2 How reproducible: 100% while inducing a crash in certain applications Steps to Reproduce: 1. Enable ABRT 2. follow steps to reproduce crash in virt manager: https://bugzilla.redhat.com/show_bug.cgi?id=803600 3. analyze the report Actual results: Virt manager crashes on a bug in PyGtk or the application self but the error report states that the crashing function was in a libvirt call (or other irrelevant function in the other thread): abrt version: 2.0.5 backtrace_rating: 4 cmdline: /usr/bin/python /usr/share/virt-manager/virt-manager.py comment: Delete several volumes from storage. crash_function: write executable: /usr/bin/python kernel: 2.6.32-220.7.1.el6.x86_64 reason: Process /usr/bin/python was killed by signal 11 (SIGSEGV) time: Thu 15 Mar 2012 09:22:48 AM CET ... although in the backtrace provided by abrt states: [New Thread 3575] [New Thread 3618] [Thread debugging using libthread_db enabled] Core was generated by `/usr/bin/python /usr/share/virt-manager/virt-manager.py'. Program terminated with signal 11, Segmentation fault. #0 0x0000003b26460e69 in validate_row (tree_view=0x1bac640, tree=0x7fafc004c960, node=0x1fe90c0, iter=0x7fff21c84380, path=<value optimized out>) at gtktreeview.c:5699 5699 gtktreeview.c: No such file or directory. in gtktreeview.c Expected results: Set the crash_function to "validate_row" (or others as apropriate) as signalled by the backtrace. Additional info: The full backtrace that is provided by ABRT is long and the threads are hard to distinguish (apart from that, it's really usefull) especialy in python programs. The correct crash_function as provided by the backtrace makes it easier just to search the backtrace for the name and make triaging easier. Bug reports by ABRT that show the same flaw: https://bugzilla.redhat.com/show_bug.cgi?id=803600 https://bugzilla.redhat.com/show_bug.cgi?id=749234 https://bugzilla.redhat.com/show_bug.cgi?id=809435
Created attachment 578538 [details] Proposed patch
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: Cause Backtrace might contain a frame with function arguments text too long. Backtrace printer in GDB truncates them in this case. Consequence Backtrace function arguments are poorly formatted. Fix Backtrace parser detects the "(truncated)" string indicating the function arguments were truncated. The parser state is adapted to this situation. Result Backtrace parser correctly parses the backtrace with truncated function arguments correctly. Backtrace analysis is performed and it determines the crash function from the backtrace.
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/RHSA-2012-0841.html