diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-09-25 23:29:37 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-09-25 23:29:37 +0000 |
commit | 6dc9e2a9b1f4043a2c4972c5599f7a61b1f04f3f (patch) | |
tree | 4f228e838478538434709ce988b91e01df715ec5 | |
parent | 1218a395d78b0085e4eb7d11fbcb20314586de9e (diff) | |
download | portage-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.py | 14 |
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 |