mirror of
https://github.com/borgbackup/borg.git
synced 2026-03-28 05:13:07 -04:00
check: improve error output for matching index size, see #4829
if the rebuilt index size matched the on-disk index size AND there was a difference in e.g. 1 key, the old code only output the key/value for one index, but not what is present in the other index. we already had better code in the branch for different index sizes, so just use that for both cases. additionally we tell when the index size matches (new) because we also tell if there is a mismatch.
This commit is contained in:
parent
6520fa2bb7
commit
d124cf0761
1 changed files with 15 additions and 18 deletions
|
|
@ -1022,24 +1022,21 @@ class Repository:
|
|||
report_error('Index object count mismatch.')
|
||||
logger.error('committed index: %d objects', len(current_index))
|
||||
logger.error('rebuilt index: %d objects', len(self.index))
|
||||
|
||||
line_format = '%-64s %-16s %-16s'
|
||||
not_found = '<not found>'
|
||||
logger.warning(line_format, 'ID', 'rebuilt index', 'committed index')
|
||||
for key, value in self.index.iteritems():
|
||||
current_value = current_index.get(key, not_found)
|
||||
if current_value != value:
|
||||
logger.warning(line_format, bin_to_hex(key), value, current_value)
|
||||
for key, current_value in current_index.iteritems():
|
||||
if key in self.index:
|
||||
continue
|
||||
value = self.index.get(key, not_found)
|
||||
if current_value != value:
|
||||
logger.warning(line_format, bin_to_hex(key), value, current_value)
|
||||
elif current_index:
|
||||
for key, value in self.index.iteritems():
|
||||
if current_index.get(key, (-1, -1)) != value:
|
||||
report_error('Index mismatch for key {}. {} != {}'.format(key, value, current_index.get(key, (-1, -1))))
|
||||
else:
|
||||
logger.info('Index object count match.')
|
||||
line_format = '%-64s %-16s %-16s'
|
||||
not_found = '<not found>'
|
||||
logger.warning(line_format, 'ID', 'rebuilt index', 'committed index')
|
||||
for key, value in self.index.iteritems():
|
||||
current_value = current_index.get(key, not_found)
|
||||
if current_value != value:
|
||||
logger.warning(line_format, bin_to_hex(key), value, current_value)
|
||||
for key, current_value in current_index.iteritems():
|
||||
if key in self.index:
|
||||
continue
|
||||
value = self.index.get(key, not_found)
|
||||
if current_value != value:
|
||||
logger.warning(line_format, bin_to_hex(key), value, current_value)
|
||||
if repair:
|
||||
self.write_index()
|
||||
self.rollback()
|
||||
|
|
|
|||
Loading…
Reference in a new issue