Просмотр исходного кода

repository: cleanup(): close segment before unlinking

On Windows, trying to delete a file that is already open raises an exception.

Docs:
https://docs.python.org/3/library/os.html#os.remove
Rayyan Ansari 2 лет назад
Родитель
Сommit
05505de807
1 измененных файлов с 2 добавлено и 3 удалено
  1. 2 3
      src/borg/repository.py

+ 2 - 3
src/borg/repository.py

@@ -1358,13 +1358,12 @@ class LoggedIO:
     def cleanup(self, transaction_id):
         """Delete segment files left by aborted transactions
         """
+        self.close_segment()
         self.segment = transaction_id + 1
         count = 0
         for segment, filename in self.segment_iterator(reverse=True):
             if segment > transaction_id:
-                if segment in self.fds:
-                    del self.fds[segment]
-                safe_unlink(filename)
+                self.delete_segment(segment)
                 count += 1
             else:
                 break