ApportInUbuntuServer

Summary

Include apport in the server install by default as well as increasing Apport coverage for server packages.

Rationale

We have targeted apport/ubuntu-bug as the common way to report bugs in ubuntu along with per-package collection hooks to try to minimize the number of information gathering steps required to get a bug report into a state useful for a developer to work on. However, apport is not installed by default on ubuntu-server and there are fewer apport hooks implemented for server oriented packages, making it a less convenient and effective tool for reporting bugs in ubuntu-server.

User stories

  • Stephanie, a system administrator, installs a development milestone of Ubuntu Server for testing purposes. Upon logging in via ssh, landscape-sysinfo notifies her via the motd that there is a crash dump in /var/crash for a server application. She uses apport-cli to review the information in the crash dump, and launches a browser on the provided Launchpad URL to finish filing a bug report.
  • Chris, a system administrator, is running Ubuntu Server Edition in production, and notices that one of his applications is crashing. He enables apport by editing /etc/default/apport, installs gdb, then waits for the crash to happen. He then examines the debug information in /var/crash/... and uses apport-retrace to get a full stack trace.
  • Nick, a system administrator, is running Ubuntu Server Edition on a staging server. He enables apport via /etc/default/apport so that any crashes are captured before development code is rolled out to production.

Assumptions

The ubuntu-server user community desires that installations contain as small a disk-space footprint as possible, and thus installing large debugging packages like gdb by default is undesirable.

The ability to file bug reports external to the system the bug report information was collected from is highly desirable.

Implementation

Apport changes

  • move gdb recommendation to apport-gtk and apport-qt and off of apport/apport-cli
    • Add a comment to /etc/default/apport suggesting server users should install gdb when running apport

  • Modify apport to allow an admin to review the collected report before submission for any sensitive information that may have leaked through
    • force an active ACK on review of the report
  • hookutils.attach_hardware_info() should use sysfs instead of HAL (hal may not exist on server installs)
  • log to syslog that a crash has been captured by apport

Most desirable per-package hooks

  • MySQL: integrate for mysql-bug script.
  • Samba (samba-panic)
  • OpenLDAP

Notifications and plugins

  • A command to list/process pending crash reports
  • Landscape
  • Nagios
  • Screen/byobu

Documentation

  • Update ubuntu-server documentation to refer to ubuntu-bug for reporting bugs
  • Add information on how to enable crash collection and reporting for staging server situations

Other

  • EC2 images: clear any pending crash reports that occurred during development of the image

Test/Demo Plan

Confirm that the intended workflow:

  1. Use ubuntu-bug to collect and save information
  2. Move report to admin workstation
  3. Report bug to launchpad from workstation with attached report

does indeed work and the report is handled properly.

Future work

  • CIM plugin/indicator
  • Document creating alt-backends and running retracers locally for entities that do not wish to submit crash information publicly
  • Enable admins' to edit gethered information before submitting rather than the above proposed binary Ack/Nack
    • Must currently be done carefully not to break the format of the report
    • report modification may also be desirable for GUI tools as well, at least in a tick-box "include this item" form


CategorySpec

QATeam/Specs/ApportInUbuntuServer (last edited 2009-06-10 12:56:25 by cpc4-oxfd8-0-0-cust39)