Better apport-package bug reports

Registered by Brian Murray

We receive an overwhelming number of apport-package bug reports which should be dealt with better. This will happen by including more information in them, providing a method for the retracer to mark duplicate apport-package reports and preventing the reporting of some package installation failures.

Blueprint information

Status:
Not started
Approver:
Steve Langasek
Priority:
High
Drafter:
Brian Murray
Direction:
Approved
Assignee:
Brian Murray
Definition:
Approved
Series goal:
Accepted for oneiric
Implementation:
Unknown
Milestone target:
None

Whiteboard

Ideas:
    * SRU of blocking of empty dpkg terminal log files by apport to Maverick and earlier (LP: #695887)
    * are we handling (reporting and triaging) of dpkg IO errors correctly? is every case covered?
    * tagging bug reports regarding package conflicts (LP: #368435)
    * including dmesg in update-manager bug reports to detect hardware failures
    * tagging distribution upgrade bug reports (release2release and or dist-upgrade)
    * inclusion of untranslated log files to ease duplicate detection

problems usually occur in:
- postinst script
- package conflicts without Conflicts: declaration
- file corruption
- dkms module build failure

reporting methods:
update-manager captures system state (sources.list, /var/lib/dpkg/status, etc.)
libapt creates the apport report

Strawman idea: add dpkg mode to re-run postinst with sh -ex in case of failure -> discuss with dpkg devs

talk to dpkg maintainers to send untranslated error messages to status-fd

retracer: create release task for a package bug reports using the release tag for stable releases (per kate) from oneiric on as the quality of oneiric package bug reports will be better

Work items:
[brian-murray] extract dpkg error message and put it into the "DuplicateSignature" tag: DONE
add dpkg mode to re-run postinst with sh -ex in case of failure -> discuss with dpkg devs first (for reference update-managers DistUpgrade/DistUpgradeViewNonInteractive.py does that (for the auto-upgrade-tester)): TODO
[brian-murray] parse conflicting package out of log, refuse bug filing if that isn't an Ubuntu package: DONE
[brian-murray] extend the "disk full" check in generic hook to also apply to /var: DONE
[brian-murray] extract error message from dkms log -> DuplicateSignature (LP: #766160): DONE
[brian-murray] check if dmesg contains I/O error messages for the drive that carries the / or /usr, /var partition and prevent bug reporting: DONE

(?)

Work Items