# HG changeset patch # User Daniel Dourvaris # Date 2019-10-15 13:45:42 # Node ID e884ccc49159c20bb325b7b635f0b834d9e2414c # Parent 1f06bac1209b9f7b915c7d83f8cd7bb0c25a7a78 caches: the file backend should report damaged DB in case of failures. diff --git a/rhodecode/lib/rc_cache/backends.py b/rhodecode/lib/rc_cache/backends.py --- a/rhodecode/lib/rc_cache/backends.py +++ b/rhodecode/lib/rc_cache/backends.py @@ -182,7 +182,7 @@ class FileNamespaceBackend(PickleSeriali def get_store(self): return self.filename - def get(self, key): + def _dbm_get(self, key): with self._dbm_file(False) as dbm: if hasattr(dbm, 'get'): value = dbm.get(key, NO_VALUE) @@ -196,6 +196,13 @@ class FileNamespaceBackend(PickleSeriali value = self._loads(value) return value + def get(self, key): + try: + return self._dbm_get(key) + except Exception: + log.error('Failed to fetch DBM key %s from DB: %s', key, self.get_store()) + raise + def set(self, key, value): with self._dbm_file(True) as dbm: dbm[key] = self._dumps(value)