Browse Source

Merge pull request #5009 from ThomasWaldmann/fix-commit-freespace-calc-missing-segment-file-master

commit-time free space calc: ignore bad compact map entries, fixes #4796
TW 5 years ago
parent
commit
6520fa2bb7
1 changed files with 7 additions and 1 deletions
  1. 7 1
      src/borg/repository.py

+ 7 - 1
src/borg/repository.py

@@ -669,7 +669,13 @@ class Repository:
             if len(self.compact) < 10:
                 # This is mostly for the test suite to avoid overestimated free space needs. This can be annoying
                 # if TMP is a small-ish tmpfs.
-                compact_working_space = sum(self.io.segment_size(segment) - free for segment, free in self.compact.items())
+                compact_working_space = 0
+                for segment, free in self.compact.items():
+                    try:
+                        compact_working_space += self.io.segment_size(segment) - free
+                    except FileNotFoundError:
+                        # looks like self.compact is referring to a non-existent segment file, ignore it.
+                        pass
                 logger.debug('check_free_space: few segments, not requiring a full free segment')
                 compact_working_space = min(compact_working_space, full_segment_size)
                 logger.debug('check_free_space: calculated working space for compact as %d bytes', compact_working_space)