← Back to team overview

apport-hackers team mailing list archive

[Merge] lp:~shnatsel/apport/dont-break-report-if-dbgsym-is-outdated into lp:apport

 

Sergey "Shnatsel" Davidoff has proposed merging lp:~shnatsel/apport/dont-break-report-if-dbgsym-is-outdated into lp:apport.

Requested reviews:
  Apport upstream developers (apport-hackers)
Related bugs:
  Bug #1069401 in Apport: "If dbgsym packages are outdated, tells the user they have outdated packages and borks the report"
  https://bugs.launchpad.net/apport/+bug/1069401

For more details, see:
https://code.launchpad.net/~shnatsel/apport/dont-break-report-if-dbgsym-is-outdated/+merge/132761

It seems that ddebs.ubuntu.com packages for Precise are outdated as of late. Apport doesn't handle such cases well; on encountering an outdated dbgsym package crash-digger blames the reporter and removes the core dump from the report, thus making the report unretraceable (bug 1069401).

This branch fixes this; instead of breaking the report it makes apport-retrace exit with a transient error code. 

As opposed to the current version, this one does not list all the outdated dbgsym packages; instead it prints only the first version mismatch, adds "and possibly others" and exits with a transient error. Perhaps this can be improved later. The change involved a string change but I didn't update the .pot file because I don't know how to regenerate it.
-- 
https://code.launchpad.net/~shnatsel/apport/dont-break-report-if-dbgsym-is-outdated/+merge/132761
Your team Apport upstream developers is requested to review the proposed merge of lp:~shnatsel/apport/dont-break-report-if-dbgsym-is-outdated into lp:apport.
=== modified file 'backends/packaging-apt-dpkg.py'
--- backends/packaging-apt-dpkg.py	2012-10-05 13:53:05 +0000
+++ backends/packaging-apt-dpkg.py	2012-11-02 23:55:24 +0000
@@ -645,8 +645,9 @@
                 elif pkg + '-dbgsym' in c:
                     real_pkgs.add(pkg + '-dbgsym')
                     if c[pkg + '-dbgsym'].candidate.version != candidate.version:
-                        obsolete += 'outdated debug symbol package for %s: package version %s dbgsym version %s\n' % (
-                            pkg, candidate.version, c[pkg + '-dbgsym'].candidate.version)
+                        apport.error('outdated debug symbol package for %s and possibly others:\n package version %s, dbgsym version %s\nThe dbgsym archive is probably behind the times.' % (
+                            pkg, candidate.version, c[pkg + '-dbgsym'].candidate.version))
+                        sys.exit(99)  # transient error
 
         for p in real_pkgs:
             c[p].mark_install(False, False)

=== modified file 'po/apport.pot'
--- po/apport.pot	2012-10-01 09:58:58 +0000
+++ po/apport.pot	2012-11-02 23:55:24 +0000
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-10-01 11:58+0200\n"
+"POT-Creation-Date: 2012-11-03 03:12+0400\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@xxxxxx>\n"