2
0
Эх сурвалжийг харах

Merge pull request #3445 from ThomasWaldmann/check-hangs-fix

fix for borg check --repair malfunction, #3444 (1.1-maint)
TW 7 жил өмнө
parent
commit
696f2a2d25

+ 1 - 1
src/borg/archive.py

@@ -1457,7 +1457,7 @@ class ArchiveChecker:
             """
             """
             item_keys = frozenset(key.encode() for key in self.manifest.item_keys)
             item_keys = frozenset(key.encode() for key in self.manifest.item_keys)
             required_item_keys = frozenset(key.encode() for key in REQUIRED_ITEM_KEYS)
             required_item_keys = frozenset(key.encode() for key in REQUIRED_ITEM_KEYS)
-            unpacker = RobustUnpacker(lambda item: isinstance(item, dict) and 'path' in item,
+            unpacker = RobustUnpacker(lambda item: isinstance(item, StableDict) and b'path' in item,
                                       self.manifest.item_keys)
                                       self.manifest.item_keys)
             _state = 0
             _state = 0
 
 

+ 1 - 1
src/borg/testsuite/archiver.py

@@ -3006,7 +3006,7 @@ class ArchiverCheckTestCase(ArchiverTestCaseBase):
     def test_missing_archive_item_chunk(self):
     def test_missing_archive_item_chunk(self):
         archive, repository = self.open_archive('archive1')
         archive, repository = self.open_archive('archive1')
         with repository:
         with repository:
-            repository.delete(archive.metadata.items[-5])
+            repository.delete(archive.metadata.items[0])
             repository.commit()
             repository.commit()
         self.cmd('check', self.repository_location, exit_code=1)
         self.cmd('check', self.repository_location, exit_code=1)
         self.cmd('check', '--repair', self.repository_location, exit_code=0)
         self.cmd('check', '--repair', self.repository_location, exit_code=0)