瀏覽代碼

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 年之前
父節點
當前提交
2a8cacf517
共有 1 個文件被更改,包括 2 次插入3 次删除
  1. 2 3
      src/borg/repository.py

+ 2 - 3
src/borg/repository.py

@@ -1448,13 +1448,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