possible for ExecutableTimestamp to not be for the binary in ExecutablePath
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
apport (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Quantal |
Fix Released
|
High
|
Unassigned |
Bug Description
[Test Case]
One convoluted way to test this the following:
1) on a quantal system run 'do-release-upgrade -d'
2) cancel the upgrade
3) switch to the release upgrader directory '/tmp/ubuntu-
4) edit DistUpgradeCont
5) in /tmp/ubuntu-
'sudo /usr/bin/python /tmp/ubuntu-
Observe the release upgrader crash. If you inspect the contents of the crash file, /var/crash/
----
I was testing bug 1067542 again and ran into a situation where release upgrade crash was unreportable because the binary had changed.
Digging into the issue DistUpgradeAppo
Then when add_proc_info calls _check_interpreted (in apport/report.py) ExecutablePath is temporarily set to '/tmp/update-
This ultimately, makes reporting crashes in the release upgrader not reportable.
Changed in apport (Ubuntu Quantal): | |
importance: | Undecided → High |
status: | New → Triaged |
description: | updated |
description: | updated |
tags: |
added: verification-done removed: verification-needed |
I believe this simple modification to test_python_ crashes. py demonstrates the problem:
=== modified file 'test/test_ python_ crashes. py' python_ crashes. py 2012-08-28 22:16:25 +0000 python_ crashes. py 2012-11-09 23:24:49 +0000
' Traceback' , 'ProblemType', 'ProcEnviron', 'ProcStatus',
' ProcCmdline' , 'Date', 'ExecutablePath', 'ProcMaps',
' UserGroups' ] l(pr['Executabl eTimestamp' ], os.stat( pr['ExecutableP ath']). st_mtime) ))
self. assertTrue( set(expected_ keys).issubset( set(pr. keys()) ),
' report has necessary fields')
self. assertTrue( 'bin/python' in pr['Interpreter Path'])
--- test/test_
+++ test/test_
@@ -136,6 +136,8 @@
+ self.assertEqua
+ str(int(