** Description changed: + [IMPACT] + + * This can prevent users from installing helper packages needed to do + their work (for example, can prevent opening rar, 7z, or jnlp files). + + * In addition, this is a highly reported crash on errors.ubuntu.com, so + we know it affects many users. + + * The proposed fix just makes a certain deferral callback not be called + twice, avoiding the assertion crash. + + [TESTCASE] + + * Unfortunately, I could not reproduce. So the patch is only based on + code analysis. Someone that can reproduce needs to test it. I'm hoping + by being accepted into precise-proposed, that will make it easier for + the affected audience to test. + + * But the indicated reproduction steps as reported are: + 0) Make sure you don't have rar installed: sudo apt-get purge rar unrar + 1) Download a rar file. Try http://www.philipp-winterberg.com/download/example.rar + 2) Open that file with file-roller + 3) Try to install the necessary packages to open it + + [Regression Potential] + + * Regression potential is low. In the worst case, I could imagine if + the patch is bogus, I could imagine the installation dialog would just + stay open indefinitely because the deferral callback never got called. + + [Patch] + + The patch is simple: + + --- sessioninstaller-0.20+bzr128.orig/sessioninstaller/backends/aptd.py + +++ sessioninstaller-0.20+bzr128/sessioninstaller/backends/aptd.py + @@ -44,12 +44,11 @@ class AptDaemonBackend(object): + def _run_trans(self, trans, parent, interaction): + deferred = defer.Deferred() + dia = aptdaemon.gtk3widgets.AptProgressDialog(trans) + - dia.connect("finished", lambda x: deferred.callback()) + if parent: + dia.realize() + dia.set_transient_for(parent) + dia.run(close_on_finished=True, show_error=True, + - reply_handler=lambda: True, + + reply_handler=deferred.callback, + error_handler=deferred.errback) + return deferred + + ========================================================= + unable to do partial upgrade ProblemType: Crash DistroRelease: Ubuntu 11.10 Package: sessioninstaller 0.20+bzr120-0ubuntu2 ProcVersionSignature: Ubuntu 3.0.0-11.17-generic 3.0.4 Uname: Linux 3.0.0-11-generic i686 ApportVersion: 1.22.1-0ubuntu2 Architecture: i386 Date: Tue Sep 13 12:58:04 2011 ExecutablePath: /usr/bin/session-installer InstallationMedia: Ubuntu 11.10 "Oneiric Ocelot" - Beta i386 (20110901) InterpreterPath: /usr/bin/python2.7 PackageArchitecture: all ProcCmdline: /usr/bin/python /usr/bin/session-installer ProcEnviron: - SHELL=/bin/bash - PATH=(custom, no user) - LANG=en_US.UTF-8 + SHELL=/bin/bash + PATH=(custom, no user) + LANG=en_US.UTF-8 PythonArgs: ['/usr/bin/session-installer'] SourcePackage: sessioninstaller Title: session-installer crashed with AlreadyCalledDeferred in callback() UpgradeStatus: Upgraded to oneiric on 2011-09-13 (0 days ago) UserGroups: adm admin cdrom dialout lpadmin plugdev sambashare
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/848605 Title: session-installer crashed with AlreadyCalledDeferred in callback() To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/sessioninstaller/+bug/848605/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs