Sfoglia il codice sorgente

Forwardport: repository: add debug logging for issue (#6918) (#6946)

repository: add debug logging for issue #6687
KN4CK3R 2 anni fa
parent
commit
00aca33ba6
1 ha cambiato i file con 15 aggiunte e 5 eliminazioni
  1. 15 5
      src/borg/repository.py

+ 15 - 5
src/borg/repository.py

@@ -859,11 +859,11 @@ class Repository:
                 elif tag == TAG_DELETE and not in_index:
                     # If the shadow index doesn't contain this key, then we can't say if there's a shadowed older tag,
                     # therefore we do not drop the delete, but write it to a current segment.
-                    shadowed_put_exists = key not in self.shadow_index or any(
-                        # If the key is in the shadow index and there is any segment with an older PUT of this
-                        # key, we have a shadowed put.
-                        shadowed < segment
-                        for shadowed in self.shadow_index[key]
+                    key_not_in_shadow_index = key not in self.shadow_index
+                    # If the key is in the shadow index and there is any segment with an older PUT of this
+                    # key, we have a shadowed put.
+                    shadowed_put_exists = key_not_in_shadow_index or any(
+                        shadowed < segment for shadowed in self.shadow_index[key]
                     )
                     delete_is_not_stable = index_transaction_id is None or segment > index_transaction_id
 
@@ -909,6 +909,16 @@ class Repository:
                         self.compact[new_segment] += size
                         segments.setdefault(new_segment, 0)
                     else:
+                        logger.debug(
+                            "dropping DEL for id %s - seg %d, iti %r, knisi %r, spe %r, dins %r, si %r",
+                            bin_to_hex(key),
+                            segment,
+                            index_transaction_id,
+                            key_not_in_shadow_index,
+                            shadowed_put_exists,
+                            delete_is_not_stable,
+                            self.shadow_index.get(key),
+                        )
                         # we did not keep the delete tag for key (see if-branch)
                         if not self.shadow_index[key]:
                             # shadowed segments list is empty -> remove it