Corrupt bazaar repositories

Martin Steigerwald Martin at lichtvoll.de
Fri Jun 22 10:18:00 BST 2007


Hello!

I have quite some corrupt Bazaar repositories after I tried out xfs_fsr - 
the online defragmentation tool for XFS. I had something similar with 
KMail index files and a Mercurial repository[1]. I dunno whether it is 
related to xfs_fsr or not. At least I could not reproduce this up to 
now - neither with KMail indexes nor with a bzr repository, but aside 
from the broken ones I had no Bazaar repository with fragmented files.

For all repositories except the one of my Bazaar article unfortunately I 
still had good backup copies...

Broken repositories look like this:

---------------------------------------------------------------------
martin at shambala:~/.crm114> mv .bzr .bzr-good
martin at shambala:~/.crm114> mv .bzr-broken .bzr
martin at shambala:~/.crm114> bzr check
Working tree format 3 is deprecated and a better format is available.
It is recommended that you upgrade by running the command
  bzr upgrade file:///home/martin/.crm114/
bzr: ERROR: bzrlib.errors.KnitCorrupt: Knit 
4a/mailfilter.cf-20070329201046-91b62hipeixaywh9-1.knit corrupt: While 
reading {martin at lichtvoll.de-20070329201346-8haxmei79rcy8o8h} got 
AssertionError(what does flush do?)

Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 718, in 
run_bzr_catch_errors
    return run_bzr(argv)
  File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 679, in 
run_bzr
    ret = run(*run_argv)
  File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 375, in 
run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/lib/python2.4/site-packages/bzrlib/builtins.py", line 2264, 
in run
    check(branch, verbose)
  File "/usr/lib/python2.4/site-packages/bzrlib/check.py", line 202, in 
check
    repo_result = branch.repository.check([branch.last_revision()])
  File "/usr/lib/python2.4/site-packages/bzrlib/decorators.py", line 127, 
in read_locked
    return unbound(self, *args, **kwargs)
  File "/usr/lib/python2.4/site-packages/bzrlib/repository.py", line 914, 
in check
    return self._check(revision_ids)
  File "/usr/lib/python2.4/site-packages/bzrlib/repository.py", line 918, 
in _check
    result.check()
  File "/usr/lib/python2.4/site-packages/bzrlib/check.py", line 73, in 
check
    self.check_one_rev(rev_id)
  File "/usr/lib/python2.4/site-packages/bzrlib/check.py", line 149, in 
check_one_rev
    self._check_revision_tree(rev_id)
  File "/usr/lib/python2.4/site-packages/bzrlib/check.py", line 182, in 
_check_revision_tree
    ie.check(self, rev_id, inv, tree)
  File "/usr/lib/python2.4/site-packages/bzrlib/inventory.py", line 358, 
in check
    self._check(checker, rev_id, tree)
  File "/usr/lib/python2.4/site-packages/bzrlib/inventory.py", line 626, 
in _check
    if self.text_sha1 != w.get_sha1(self.revision):
  File "/usr/lib/python2.4/site-packages/bzrlib/knit.py", line 559, in 
get_sha1
    record_map = self._get_record_map([version_id])
  File "/usr/lib/python2.4/site-packages/bzrlib/knit.py", line 793, in 
_get_record_map
    for component_id, content, digest in \
  File "/usr/lib/python2.4/site-packages/bzrlib/knit.py", line 1594, in 
read_records_iter
    content, digest = self._parse_record(version_id, data)
  File "/usr/lib/python2.4/site-packages/bzrlib/knit.py", line 1499, in 
_parse_record
    "While reading {%s} got %s(%s)"
KnitCorrupt: Knit 4a/mailfilter.cf-20070329201046-91b62hipeixaywh9-1.knit 
corrupt: While reading 
{martin at lichtvoll.de-20070329201346-8haxmei79rcy8o8h} got 
AssertionError(what does flush do?)

bzr 0.17.0 on python 2.4.4.final.0 (linux2)
arguments: ['/usr/bin/bzr', 'check']

** please send this report to bazaar at lists.ubuntu.com
---------------------------------------------------------------------

Or this:

---------------------------------------------------------------------
martin at shambala:Artikel/Linux/Bazaar> bzr check
Working tree format 3 is deprecated and a better format is available.
It is recommended that you upgrade by running the command
  bzr upgrade file:///home/martin/Artikel/Linux/Bazaar/
bzr: ERROR: exceptions.IndexError: list index out of range

Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 718, in 
run_bzr_catch_errors
    return run_bzr(argv)
  File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 679, in 
run_bzr
    ret = run(*run_argv)
  File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 375, in 
run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/lib/python2.4/site-packages/bzrlib/builtins.py", line 2264, 
in run
    check(branch, verbose)
  File "/usr/lib/python2.4/site-packages/bzrlib/check.py", line 201, in 
check
    branch_result = branch.check()
  File "/usr/lib/python2.4/site-packages/bzrlib/decorators.py", line 127, 
in read_locked
    return unbound(self, *args, **kwargs)
  File "/usr/lib/python2.4/site-packages/bzrlib/branch.py", line 747, in 
check
    revision = self.repository.get_revision(revision_id)
  File "/usr/lib/python2.4/site-packages/bzrlib/decorators.py", line 127, 
in read_locked
    return unbound(self, *args, **kwargs)
  File "/usr/lib/python2.4/site-packages/bzrlib/repofmt/knitrepo.py", line 
107, in get_revision
    return self.get_revision_reconcile(revision_id)
  File "/usr/lib/python2.4/site-packages/bzrlib/decorators.py", line 127, 
in read_locked
    return unbound(self, *args, **kwargs)
  File "/usr/lib/python2.4/site-packages/bzrlib/repository.py", line 446, 
in get_revision_reconcile
    return self.get_revisions([revision_id])[0]
  File "/usr/lib/python2.4/site-packages/bzrlib/decorators.py", line 127, 
in read_locked
    return unbound(self, *args, **kwargs)
  File "/usr/lib/python2.4/site-packages/bzrlib/repository.py", line 452, 
in get_revisions
    self.get_transaction())
  File "/usr/lib/python2.4/site-packages/bzrlib/store/revision/knit.py", 
line 84, in get_revisions
    texts = self._get_serialized_revisions(revision_ids, transaction)
  File "/usr/lib/python2.4/site-packages/bzrlib/store/revision/knit.py", 
line 98, in _get_serialized_revisions
    vf = self.get_revision_file(transaction)
  File "/usr/lib/python2.4/site-packages/bzrlib/store/revision/knit.py", 
line 112, in get_revision_file
    return self.versioned_file_store.get_weave_or_empty('revisions', 
transaction)
  
File "/usr/lib/python2.4/site-packages/bzrlib/store/versioned/__init__.py", 
line 208, in get_weave_or_empty
    return self.get_weave(file_id, transaction, _filename=_filename)
  
File "/usr/lib/python2.4/site-packages/bzrlib/store/versioned/__init__.py", 
line 154, in get_weave
    access_mode='r',
  File "/usr/lib/python2.4/site-packages/bzrlib/knit.py", line 365, in 
__init__
    dir_mode=dir_mode)
  File "/usr/lib/python2.4/site-packages/bzrlib/knit.py", line 1153, in 
__init__
    self._load_data(fp)
  File "/usr/lib/python2.4/site-packages/bzrlib/knit.py", line 1194, in 
_load_data
    parent_id = history[int(value)]
IndexError: list index out of range

bzr 0.17.0 on python 2.4.4.final.0 (linux2)
arguments: ['/usr/bin/bzr', 'check']

** please send this report to bazaar at lists.ubuntu.com
---------------------------------------------------------------------

Any hints on how I can fix the Bazaar article repository?

I can provide the .crm114 repo for public download for further analysis. I 
can also provide the Bazaar article to a Bazaar developer who keeps it 
private.

If you need any further information please ask.

This is on a combination of Debian Etch, Lenny, Sid and Experimental.

[1] http://oss.sgi.com/archives/xfs/2007-06/msg00242.html

Regards,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070622/567dce45/attachment.pgp 


More information about the bazaar mailing list