Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

We want to extend the range of crashes that apport can process, as well as make the process more efficient.

Rationale

In Edgy we do not get any useful information from crashed processes which cannot write into their cwd (like notification-daemon) or are terminated with SIGABRT due to an exception (like interpreted Python/Mono programs). To accelerate processing, the core dump should not be temporarily written to the disk at all.

Use cases

Design

Implementation

Kernel

In 2.6.19, Andi Kleen committed a new feature for /proc/sys/kernel/core_pattern: it can start with a pipe ('|') now, in which case the remainder is interpreted as a path. That path is executed, and the core dump is piped to stdin. We will base our solution on this, however, two modifications are still required:

apport

Apport needs to read the core dump from stdin if the core dump path is '-' (this is already implemented in Feisty). The init script needs to set the appropriate core_pattern: |/usr/share/apport/apport %p %s -.

We will also add a new Python package apport (shipped in python-apport deb) which provides a default Python exception handler that creates an apport report (this is already implemented in Feisty).

Python 2.4/2.5

site.py should try to import apport.python_hook, and if that succeeds, call the apport exception handler (python_hook.install()). See https://launchpad.net/bugs/70957 for details and patch.

Data preservation and migration

Not required.

Test cases

Both of these cases (as well as many others) are already checked in apport's own test suite. The self tests can be run with


CategorySpec

ApportImprovements (last edited 2008-08-06 16:30:26 by localhost)