Bug 811147 - Report correct crash_function in the crash sumary
Summary: Report correct crash_function in the crash sumary
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: btparser
Version: 6.3
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Karel Klíč
QA Contact: qe-baseos-tools
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-04-10 09:41 UTC by Peter Krempa
Modified: 2012-06-20 07:10 UTC (History)
4 users (show)

Fixed In Version: btparser-0.16-2.el6
Doc Type: Bug Fix
Doc Text:
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.
Clone Of:
Environment:
Last Closed: 2012-06-20 07:10:40 UTC
Target Upstream Version:


Attachments (Terms of Use)
Proposed patch (172.08 KB, patch)
2012-04-19 08:31 UTC, Karel Klíč
no flags Details | Diff


Links
System ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2012:0841 normal SHIPPED_LIVE Low: abrt, libreport, btparser, and python-meh security and bug fix update 2012-06-19 19:29:03 UTC

Description Peter Krempa 2012-04-10 09:41:50 UTC
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

Comment 3 Karel Klíč 2012-04-19 08:31:44 UTC
Created attachment 578538 [details]
Proposed patch

Comment 7 Karel Klíč 2012-06-12 12:53:44 UTC
    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.

Comment 9 errata-xmlrpc 2012-06-20 07:10:40 UTC
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


Note You need to log in before you can comment on or make changes to this bug.