- 1 Simplified crash reporting via ABRT Server
- 1.1 Summary
- 1.2 Owner
- 1.3 Current status
- 1.4 Detailed Description
- 1.5 Benefit to Fedora
- 1.6 Scope
- 1.7 How To Test
- 1.8 User Experience
- 1.9 Dependencies
- 1.10 Contingency Plan
- 1.11 Documentation
- 1.12 Release Notes
- 1.13 Comments and Discussion
Simplified crash reporting via ABRT Server
This feature provides simplified crash reporting along with fully featured server for handling user-reported problems.
- Name: ABRT Development Team
- Email: crash-catcher at lists.fedorahosted.org
- Targeted release: Fedora 18
- Last updated: 2012-10-08
- Percentage of completion: 100%
- Server is receiving roughly 1000 reports per day.
- Kernel oops support added.
- As of mid-August, no outstanding issues are remaining.
- ABRT Server is publicly deployed 
- Updated client packages are present in Fedora 18.
- Package crash report uploading works properly.
Current crash reporting process is quite complicated and requires number of time consuming steps to finish. This feature adds number of improvements which should simplify the process leading to more submissions from Fedora users.
Benefit to Fedora
- Improved privacy of Fedora users.
- Less problematic problem reporting.
- More accurate statistics of misbehaving applications.
Package crash is handled by ABRT daemon and core backtrace is generated. This backtrace contains only package build_id, function name, function hash, binary path and offset within binary. With this approach, there is no need to install debuginfo packages or use retrace server for backtrace generation.
Core backtrace doesn't contain any data which reduces the risk of sending sensitive data like passwords or credit card numbers to the public bugzilla allowing user to send us the backtrace automatically.
Sample core backtrace  is provided.
Support for new simplified reporting using core backtrace has to be implemented in client utilities. This is done in reporter-ureport tool, which bundles all the information required by the ABRT Server into small json file, which is then sent to the public instance.
This json report is called μReport. Structure of this file is well-defined in ABRT Project Document , section 5.4.8.
Sample μReport  is provided.
This process should be invisible for end-user as it's handled by abrt-gui.
Server should accept valid μReport and store it in the database for further processing. Currently, this includes retracing (adding source file and line number information to the backtrace) and deduplication (merging with other similar reports).
After processing, this information is accessible via web interface of the server .
Web interface provides overview of incoming reports, statistics of most problematic components and detailed display of reported problems.
Deduplication and clustering of the reports allows the server to provide more accurate data about cause of the crash – if the crash is caused by bug in a library, server will not blame the components which are using the library but the library itself.
How To Test
Current set of ABRT packages is required for testing. Please verify that you have libreport-plugin-ureport package installed.
- Force the crash of your favorite package - to do so, run the application and use
pkill -SIGSEGV <application name>to crash it.
- Try reporting newly created problem via abrt-gui.
- Reporting should succeed.
- After few minutes, it should be possible to view your report on the public instance .
- Users: reporting process is quick and easy, there is no need to check the backtrace for sensitive data nor posses a bugzilla account.
- Maintainers: server provides accurate statistics of crashes of their components, server blames problematic libraries instead of applications which are using them.
None necessary, rest of the ABRT functionallity remains untouched – it is still possible to use old ways of reporting.
- Fedora's bug reporting tool (ABRT) now uses new, simplified way of reporting user problems. These reports are now handled by ABRT Server, which also provides statistics and clustering of the reports, giving maintainers more accurate data about the problem.