Apport for Fedora
THIS PLAN IS OBSOLETE: See Features/CrashHandling
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
- Name: WillWoods
- Targeted release:
- Last modified: [[Date(2007-07-17T16:06:04Z)]
- Percent complete: 75%
Usage cases / rationale
- See summary
Benefit to Fedora
- See summary
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)
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..
GTK_MODULES version will need more care, if >1 module is listed, BastienNocera)
1. Wait a moment for the crash report to appear in
/etc/apport/crashdb and set
default = 'debug'
This won't be needed in apport-0.91-0.ww2 and later.
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)
apport-qt requires PyQt4
|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|
None needed - this is a new feature and can be safely deferred if it is not ready.
Information on installing & enabling apport (and reasons why you would want to do this) would be a good idea.
None needed - this should not be installed or enabled by default in F8 final.
Have you looked into https://blueprints.launchpad.net/ubuntu/+spec/apport-synaptic-integration? - RahulSundaram
- Once Apport is working properly, this wouldn't be too tough. Yum could use the apport libraries to create a crash report with
ProblemType: Packaging, which would then get picked up by the Crash Notifier. -WillWoods
So, now we're going to have GNOME doing their own thing , Firefox doing Breakpad, and distros doing something different. Yay. Can we try and get some collaboration going on here, please? I'd rather use what the apps are going to use, be it GNOME or Firefox. - ChristopherAillon
- KDE also has its own solution (KCrash). - KevinKofler
- Sounds like we really need to work together and create a spec that we can all implement together before we start doing work here. - ChristopherAillon