@@ -736,7 +736,12 @@ def complete_xfer(intermediate=True):
736736 for segment in unused :
737737 logger .debug ("complete_xfer: Deleting unused segment %d" , segment )
738738 count = self .segments .pop (segment )
739- assert count == 0 , "Corrupted segment reference count - corrupted index or hints"
739+ if count != 0 :
740+ logger .warning (
741+ "Corrupted segment reference count %d (expected 0) for segment %d - corrupted index or hints" ,
742+ count ,
743+ segment ,
744+ )
740745 self .io .delete_segment (segment )
741746 del self .compact [segment ]
742747 unused = []
@@ -748,7 +753,8 @@ def complete_xfer(intermediate=True):
748753 for segment , freeable_space in sorted (self .compact .items ()):
749754 if not self .io .segment_exists (segment ):
750755 logger .warning ("Segment %d not found, but listed in compaction data" , segment )
751- del self .compact [segment ]
756+ self .compact .pop (segment , None )
757+ self .segments .pop (segment , None )
752758 pi .show ()
753759 self ._send_log ()
754760 continue
@@ -867,7 +873,12 @@ def complete_xfer(intermediate=True):
867873 if not self .shadow_index [key ]:
868874 # shadowed segments list is empty -> remove it
869875 del self .shadow_index [key ]
870- assert segments [segment ] == 0 , "Corrupted segment reference count - corrupted index or hints"
876+ if segments [segment ] != 0 :
877+ logger .warning (
878+ "Corrupted segment reference count %d (expected 0) for segment %d - corrupted index or hints" ,
879+ segments [segment ],
880+ segment ,
881+ )
871882 unused .append (segment )
872883 pi .show ()
873884 self ._send_log ()
0 commit comments