summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-09-25 23:29:37 +0000
committerZac Medico <zmedico@gentoo.org>2008-09-25 23:29:37 +0000
commit6dc9e2a9b1f4043a2c4972c5599f7a61b1f04f3f (patch)
tree4f228e838478538434709ce988b91e01df715ec5
parent1218a395d78b0085e4eb7d11fbcb20314586de9e (diff)
downloadportage-6dc9e2a9b1f4043a2c4972c5599f7a61b1f04f3f.tar.gz
portage-6dc9e2a9b1f4043a2c4972c5599f7a61b1f04f3f.tar.bz2
portage-6dc9e2a9b1f4043a2c4972c5599f7a61b1f04f3f.zip
Fix mirror_cache() so it won't silently swallow a KeyError if _mtime_ or
_eclass_ happens to be missing from the cache data for some reason. svn path=/main/trunk/; revision=11548
-rw-r--r--pym/portage/cache/util.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/pym/portage/cache/util.py b/pym/portage/cache/util.py
index f256be76f..253ada009 100644
--- a/pym/portage/cache/util.py
+++ b/pym/portage/cache/util.py
@@ -39,12 +39,16 @@ def mirror_cache(valid_nodes_iterable, src_cache, trg_cache, eclass_cache=None,
trg = None
try:
trg = trg_cache[x]
- if long(trg["_mtime_"]) == long(entry["_mtime_"]) and \
- eclass_cache.is_eclass_data_valid(trg["_eclasses_"]) and \
- set(trg["_eclasses_"]) == set(entry["_eclasses_"]):
- write_it = False
- except (cache_errors.CacheError, KeyError):
+ except KeyError:
pass
+ else:
+ try:
+ if long(trg["_mtime_"]) == long(entry["_mtime_"]) and \
+ eclass_cache.is_eclass_data_valid(trg["_eclasses_"]) and \
+ set(trg["_eclasses_"]) == set(entry["_eclasses_"]):
+ write_it = False
+ except cache_errors.CacheError:
+ pass
if trg and not write_it:
""" We don't want to skip the write unless we're really sure that