Apport for Fedora
THIS PLAN IS OBSOLETE: See Features/CrashHandling
Summary
Apport is a set of tools from the Ubuntu project that can:
- Gather information about crashed processes
- Hooks into the kernel using /proc/sys/kernel/core_pattern to catch coredumps
- Does not require extra libraries like bug-buddy, breakpad , etc.
- Also has hooks for python tracebacks
- Supports per-package hooks, so (e.g.) crash reports for Xorg can include xorg.conf and Xorg.0.log
- Report that information to a crash database
- Retrace the coredump, adding proper debuginfo symbols
- Notice duplicate crashes and point users to the existing bug report
More information is available on the Ubuntu wiki: Apport and CrashReporting
Owner
- Name: WillWoods
Current status
- Targeted release:
- Last modified: [[Date(2007-07-17T16:06:04Z)]
- Percent complete: 75%
Usage cases / rationale
- See summary
Benefit to Fedora
- See summary
Scope
Testing
Much of the apport code contains unit tests, but here are some short recipes for testing out apport.
Testing the client code (crash handler, reporting GUI)
1. Install apport
and apport-gtk
apport-qt
requires PyQt4, which is not yet available in Fedora.
1. Start the apport service: sudo /sbin/service apport start
1. Enable core dumps by setting the core dump size limit to something reasonable: ulimit -c 100000
This will not be necessary once the kernel is patched to improve core handling.
1. Cause a program to crash, e.g. sleep 5 & sleep 1; kill -SEGV %1
Note that this will not work with most GNOME apps unless you start them with --disable-crash-dialog.
Isn't there a env var that disables bug-buddy? We should set this when apport is enabled..
(GNOME_DISABLE_CRASH_DIALOG=1
, the GTK_MODULES
version will need more care, if >1 module is listed, BastienNocera)
1. Wait a moment for the crash report to appear in /var/crash
1. Edit /etc/apport/crashdb
and set default = 'debug'
This won't be needed in apport-0.91-0.ww2 and later.
1. Run /usr/share/apport/apport-gtk
apportd should be in the next apport package - it will do this for you.
1. Wait while the GUI gathers packaging information.
1. Examine and (optionally) send the crash report.
Testing the server code (apport-retrace, tg-crashdb)
TODO.
Dependencies
1. apport-qt
requires PyQt4
Details
Merging Fedora-specific client code upstream | Complete |
Kernel patch for improved handling of core dumps to pipes | In progress - patch submitted upstream |
Implement CrashDB for Fedora | NEEDINFO - we have a mostly-complete Turbogears crashdb implementation and RH-bugzilla based implementation (see this example bug ). Unsure which to use. |
Crash notifier | apportd.c starts with the user's X session and uses inotify to watch /var/crash |
PyQt4 for apport-qt | Package under review here , but qt-based interface is not required for release. |
Packaging/Review | In progress- packages here |
Optional
User Experience
Contingency plan
None needed - this is a new feature and can be safely deferred if it is not ready.
Documentation
Information on installing & enabling apport (and reasons why you would want to do this) would be a good idea.
Release Notes
None needed - this should not be installed or enabled by default in F8 final.