diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-26 23:29:25 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-26 23:29:25 +0000 |
commit | 45ff8239f28ef4ba3dd47b016147eccceeaa26e0 (patch) | |
tree | 0344d54e55ece7d23ad307ea7d40fa877d60c20d | |
parent | Avoid triggering "cPickle.UnpicklingError: Global and instance pickles (diff) | |
download | portage-multirepo-45ff8239f28ef4ba3dd47b016147eccceeaa26e0.tar.gz portage-multirepo-45ff8239f28ef4ba3dd47b016147eccceeaa26e0.tar.bz2 portage-multirepo-45ff8239f28ef4ba3dd47b016147eccceeaa26e0.zip |
Don't silently swallow instances of UnpicklingError since they are easily
triggered by storing instances of custom classes in a pickle.
(trunk r10432:10434)
svn path=/main/branches/2.1.2/; revision=10435
-rwxr-xr-x | bin/emerge | 7 | ||||
-rw-r--r-- | pym/portage.py | 13 |
2 files changed, 15 insertions, 5 deletions
@@ -1557,8 +1557,11 @@ class BlockerCache(DictMixin): self._cache_data = mypickle.load() f.close() del f - except (IOError, OSError, EOFError, cPickle.UnpicklingError): - pass + except (IOError, OSError, EOFError, cPickle.UnpicklingError), e: + if isinstance(e, cPickle.UnpicklingError): + writemsg("!!! Error loading '%s': %s\n" % \ + (self._cache_filename, str(e)), noiselevel=-1) + del e cache_valid = self._cache_data and \ isinstance(self._cache_data, dict) and \ self._cache_data.get("version") == self._cache_version and \ diff --git a/pym/portage.py b/pym/portage.py index 414fffd7..b126fac3 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -6923,8 +6923,11 @@ class vardbapi(dbapi): self._aux_cache = mypickle.load() f.close() del f - except (IOError, OSError, EOFError, cPickle.UnpicklingError): - pass + except (IOError, OSError, EOFError, cPickle.UnpicklingError), e: + if isinstance(e, cPickle.UnpicklingError): + writemsg("!!! Error loading '%s': %s\n" % \ + (self._aux_cache_filename, str(e)), noiselevel=-1) + del e if not self._aux_cache or \ not isinstance(self._aux_cache, dict) or \ self._aux_cache.get("version") != self._aux_cache_version or \ @@ -10489,7 +10492,11 @@ class MtimeDB(dict): d = mypickle.load() f.close() del f - except (IOError, OSError, EOFError, cPickle.UnpicklingError): + except (IOError, OSError, EOFError, cPickle.UnpicklingError), e: + if isinstance(e, cPickle.UnpicklingError): + writemsg("!!! Error loading '%s': %s\n" % \ + (filename, str(e)), noiselevel=-1) + del e d = {} if "old" in d: |