Skip to contentSkip to conversation

cache: Add better cache loading sanity checks

PATCH New Richard Purdie 1 participant 1 message Jul 22, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cache: Add better cache loading sanity checks

We've seen cache corruption where the pairs come out in a different order to the way we saved them for unknown reasons. Add better sanity checking to give a more user friendly error rather than a crash/traceback.

Also allows the system to reparse and recover.

bitbake/lib/bb/cache.py +7 -0
index cce12d1..439565f 100644
@@ -328,6 +328,13 @@ class Cache(object):
                         value = pickled.load()
                     except Exception:
                         break
+                    if not isinstance(key, str):
+                        bb.warn("%s from extras cache is not a string?" % key)
+                        break
+                    if not isinstance(value, RecipeInfoCommon):
+                        bb.warn("%s from extras cache is not a RecipeInfoCommon class?" % value)
+                        break
+
                     if key in self.depends_cache:
                         self.depends_cache[key].append(value)
                     else: