caches: the file backend should report damaged DB in case of failures.
This commit is contained in:
parent
9c4dbfeb4b
commit
94552dd0df
1 changed files with 8 additions and 1 deletions
|
|
@ -182,7 +182,7 @@ class FileNamespaceBackend(PickleSerializer, file_backend.DBMBackend):
|
|||
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(PickleSerializer, file_backend.DBMBackend):
|
|||
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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue