diff --git a/borg/cache.py b/borg/cache.py index d69614a57..80e57d321 100644 --- a/borg/cache.py +++ b/borg/cache.py @@ -208,10 +208,16 @@ Chunk index: {0.total_unique_chunks:20d} {0.total_chunks:20d}""" if not data: break u.feed(data) - for path_hash, item in u: - item[0] += 1 - # in the end, this takes about 240 Bytes per file - self.files[path_hash] = msgpack.packb(item) + try: + for path_hash, item in u: + item[0] += 1 + # in the end, this takes about 240 Bytes per file + self.files[path_hash] = msgpack.packb(item) + except (TypeError, ValueError) as exc: + logger.warning('The files cache seems corrupt, ignoring it. ' + 'Expect lower performance. [%s]' % str(exc)) + self.files = {} + return def begin_txn(self): # Initialize transaction snapshot