validate_entry: handle KeyError for bug #417253
authorZac Medico <zmedico@gentoo.org>
Wed, 23 May 2012 18:59:45 +0000 (11:59 -0700)
committerZac Medico <zmedico@gentoo.org>
Wed, 23 May 2012 18:59:45 +0000 (11:59 -0700)
This error is triggered by corrupt cache entries.

pym/portage/cache/template.py

index 0af6c20cad361a7fadb96a117f03e89d5d5b1213..0ab6e0a1f3061896d861ce98b40082f43c2e84b7 100644 (file)
@@ -194,8 +194,13 @@ class database(object):
 
        def validate_entry(self, entry, ebuild_hash, eclass_db):
                hash_key = '_%s_' % self.validation_chf
-               if entry[hash_key] != getattr(ebuild_hash, self.validation_chf):
+               try:
+                       entry_hash = entry[hash_key]
+               except KeyError:
                        return False
+               else:
+                       if entry_hash != getattr(ebuild_hash, self.validation_chf):
+                               return False
                update = eclass_db.validate_and_rewrite_cache(entry['_eclasses_'], self.validation_chf,
                        self.store_eclass_paths)
                if update is None: