Bug 811147 - Report correct crash_function in the crash sumary
Report correct crash_function in the crash sumary
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: btparser (Show other bugs)
6.3
Unspecified Unspecified
medium Severity medium
: rc
: ---
Assigned To: Karel Klíč
qe-baseos-tools
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-04-10 05:41 EDT by Peter Krempa
Modified: 2012-06-20 03:10 EDT (History)
4 users (show)

See Also:
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.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-06-20 03:10:40 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


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

  None (edit)
Description Peter Krempa 2012-04-10 05:41:50 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
Comment 3 Karel Klíč 2012-04-19 04:31:44 EDT
Created attachment 578538 [details]
Proposed patch
Comment 7 Karel Klíč 2012-06-12 08:53:44 EDT
    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 03:10:40 EDT
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.