crash files don't ensure matching package version

Bug #794190 reported by Brian Murray
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
apport (Ubuntu)
Fix Released
Low
Unassigned

Bug Description

Binary package hint: apport

When writing a crash file apport does not include the package version, but does include the package version when filing the bug. So its possible that if the system installs updated packages before reporting the crash that the package version being shown in the bug report is not the actual package version which experienced the crash. I think the package version should be written to the crash file.

If you look at bug 777087 and look at the package version in that report you'll see that it is 0.80.9 however the Traceback.txt displays code from an earlier version of the package.

ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: apport 1.20.1-0ubuntu5 [modified: usr/share/apport/package-hooks/source_linux.py]
ProcVersionSignature: Ubuntu 2.6.38-8.42-generic 2.6.38.2
Uname: Linux 2.6.38-8-generic x86_64
Architecture: amd64
CheckboxSubmission: fee5e196cb921cbd36888f428b38b488
CheckboxSystem: 2a6f54df59af338184485e85cbcf0d32
CrashReports:
 600:1000:0:1173262:2011-06-07 11:17:11.000000000 -0700:2011-06-07 11:17:12.000000000 -0700:/var/crash/_usr_sbin_cupsd.0.crash
 600:1000:100:37246202:2011-06-07 11:13:54.000000000 -0700:2011-06-07 11:14:11.000000000 -0700:/var/crash/_usr_bin_gtimelog.1000.crash
Date: Tue Jun 7 11:20:36 2011
PackageArchitecture: all
ProcEnviron:
 LANGUAGE=en_US:en
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/zsh
SourcePackage: apport
UpgradeStatus: Upgraded to natty on 2011-04-28 (39 days ago)

Revision history for this message
Brian Murray (brian-murray) wrote :
Revision history for this message
Martin Pitt (pitti) wrote :

This is by design, I'm afraid.

We originally did that, but as people complained that it blocks the crashed process for too long, we moved all the non-essential data collection to the UI stage. Collecting package information takes several dozen seconds, and causes quite a high IO load.

The expectation is that as soon as the .crash file is written, apport pops up, and when you want to report the bug, it'll add the extra data.

Changed in apport (Ubuntu):
status: New → Won't Fix
summary: - crash files don't include package version
+ crash files don't ensure matching package version
Revision history for this message
Martin Pitt (pitti) wrote :

Let's refomulate that. At the time of the crash, we could take the timestamp of the executable, and compare it with the timestamp of the executable when reporting the crash. If they are not identical, we reject the crash.

Changed in apport (Ubuntu):
importance: Undecided → Low
status: Won't Fix → Triaged
Revision history for this message
Gary Lasker (gary-lasker) wrote :

See bug 869079 for another apparent example of this occurrence. It certainly makes for an interesting couple of minutes during bug triage! ;)

Revision history for this message
Brian Murray (brian-murray) wrote :

This was fixed in Precise.

        # check if binary changed since the crash happened
        if 'ExecutablePath' in self.report and 'ExecutableTimestamp' in self.report:
            orig_time = int(self.report['ExecutableTimestamp'])
            del self.report['ExecutableTimestamp']
            cur_time = int(os.stat(self.report['ExecutablePath']).st_mtime)

            if orig_time != cur_time:
                self.report['UnreportableReason'] = (
                    _('The problem happened with the program %s which changed '
                      'since the crash occurred.') % self.report['ExecutablePath'])
                return

Changed in apport (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.