summaryrefslogtreecommitdiff
path: root/DistUpgrade
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2006-10-04 13:17:16 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2006-10-04 13:17:16 +0200
commite6d17f29049c81ea4064dd928b026ef68726354d (patch)
treef8df52c5b9bfb1222a8eccc2dc5788fdab99a4e7 /DistUpgrade
parent533db41cd76a89a2a893c00980e537d3af34c769 (diff)
downloadpython-apt-e6d17f29049c81ea4064dd928b026ef68726354d.tar.gz
* DistUpgrade/DistUpgradeCache.py:
- catch systemerror exceptions in _tryMarkObsoleteForRemoval()
Diffstat (limited to 'DistUpgrade')
-rw-r--r--DistUpgrade/DistUpgradeCache.py23
1 files changed, 14 insertions, 9 deletions
diff --git a/DistUpgrade/DistUpgradeCache.py b/DistUpgrade/DistUpgradeCache.py
index 01305d32..1a7911c0 100644
--- a/DistUpgrade/DistUpgradeCache.py
+++ b/DistUpgrade/DistUpgradeCache.py
@@ -307,8 +307,8 @@ class MyCache(apt.Cache):
logging.debug("guessing '%s' as missing meta-pkg" % key)
try:
self[key].markInstall()
- except SystemError:
- logging.error("failed to mark '%s' for install" % key)
+ except SystemError, e:
+ logging.error("failed to mark '%s' for install (%s)" % (key,e))
view.error(_("Can't install '%s'" % key),
_("It was impossible to install a "
"required package. Please report "
@@ -340,13 +340,18 @@ class MyCache(apt.Cache):
# if it dosn't remove other packages depending on it
# that are not obsolete as well
self.create_snapshot()
- self[pkgname].markDelete()
- for pkg in self.getChanges():
- if pkg.name not in remove_candidates or \
- pkg.name in foreign_pkgs or \
- self._inRemovalBlacklist(pkg.name):
- self.restore_snapshot()
- return False
+ try:
+ self[pkgname].markDelete()
+ for pkg in self.getChanges():
+ if pkg.name not in remove_candidates or \
+ pkg.name in foreign_pkgs or \
+ self._inRemovalBlacklist(pkg.name):
+ self.restore_snapshot()
+ return False
+ except SystemError,e:
+ loggging.warning("_tryMarkObsoleteForRemoval failed for '%s' (%s)" % (pkgname,e))
+ self.restore_snapshot()
+ return False
return True
def _getObsoletesPkgs(self):