Problems with bzr.dev tonight

Ian Clatworthy ian.clatworthy at internode.on.net
Tue Oct 16 05:36:51 BST 2007


Robert Collins wrote:
> On Tue, 2007-10-16 at 12:35 +1000, Martin Pool wrote:
>> Talking this over Ian and I came up with a hypothesis: this happened
>> when the packs format changed from being annotated to unannotated,
>> without a synchronized bump of its version string.  (If that did not
>> occur we need a new hypothesis. ;-)
> 
> You need a new hypothesis I think, as the problem revno has not been
> propogated to bzr.dev from anywhere other than my integration knits
> repo, and I independently converted each knit repo atomically.

I'll try and state the hypothesis another way. Here's my setup:

bzr/
    .bzr/ (shared repo)
    bzr.dev/ (trunk)
    heaps of other branches
    robertc.repository/ (from
http://people.ubuntu.com/%7Erobertc/baz2.0/repository/)

Going into robertc.repository and typing "./bzr pull", as I did
yesterday afternoon, might have broken the subsequent "./bzr pull" in
bzr.dev as they share a repository.

If I go into the robertc.repository branch and type ./bzr info -v,
here's what I get:

ian at possum:~/bzr/robertc.repository$ ./bzr info -v
Repository tree (format: dirstate)
Location:
  shared repository: /home/ian/bzr
  repository branch: .

Related branches:
  parent branch: http://people.ubuntu.com/%7Erobertc/baz2.0/repository/

Format:
       control: Meta directory format 1
  working tree: Working tree format 4
        branch: Branch format 5
    repository: Knit repository format 1

Working tree is out of date: missing 40 revisions.

In the working tree:
       736 unchanged
         0 modified
         0 added
         0 removed
         0 renamed
         1 unknown
       529 ignored
        58 versioned subdirectories

Branch history:
      2824 revisions
bzr: ERROR: bzrlib.errors.KnitCorrupt: Knit <bzrlib.knit._KnitAccess
object at 0x84969ac> corrupt: incorrect number of lines 8 != 1 for
version {robertc at robertcollins.net-20070912050636-c6fu3lybn1tbftk5}

Traceback (most recent call last):
  File "/home/ian/bzr/robertc.repository/bzrlib/commands.py", line 802,
in run_bzr_catch_errors
    return run_bzr(argv)
  File "/home/ian/bzr/robertc.repository/bzrlib/commands.py", line 758,
in run_bzr
    ret = run(*run_argv)
  File "/home/ian/bzr/robertc.repository/bzrlib/commands.py", line 492,
in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/home/ian/bzr/robertc.repository/bzrlib/commands.py", line 768,
in ignore_pipe
    result = func(*args, **kwargs)
  File "/home/ian/bzr/robertc.repository/bzrlib/builtins.py", line 1076,
in run
    verbose=noise_level)
  File "/home/ian/bzr/robertc.repository/bzrlib/info.py", line 330, in
show_bzrdir_info
    show_component_info(a_bzrdir, repository, branch, tree, verbose)
  File "/home/ian/bzr/robertc.repository/bzrlib/info.py", line 360, in
show_component_info
    stats = _show_branch_stats(branch, verbose==2)
  File "/home/ian/bzr/robertc.repository/bzrlib/info.py", line 267, in
_show_branch_stats
    stats = branch.repository.gather_stats(head, committers=verbose)
  File "/home/ian/bzr/robertc.repository/bzrlib/decorators.py", line
127, in read_locked
    return unbound(self, *args, **kwargs)
  File "/home/ian/bzr/robertc.repository/bzrlib/repository.py", line
706, in gather_stats
    for revision in self.get_revisions(revisions):
  File "/home/ian/bzr/robertc.repository/bzrlib/decorators.py", line
127, in read_locked
    return unbound(self, *args, **kwargs)
  File "/home/ian/bzr/robertc.repository/bzrlib/repository.py", line
924, in get_revisions
    return self._get_revisions(revision_ids)
  File "/home/ian/bzr/robertc.repository/bzrlib/decorators.py", line
127, in read_locked
    return unbound(self, *args, **kwargs)
  File "/home/ian/bzr/robertc.repository/bzrlib/repository.py", line
934, in _get_revisions
    self.get_transaction())
  File "/home/ian/bzr/robertc.repository/bzrlib/store/revision/knit.py",
line 90, in get_revisions
    texts = self._get_serialized_revisions(revision_ids, transaction)
  File "/home/ian/bzr/robertc.repository/bzrlib/store/revision/knit.py",
line 106, in _get_serialized_revisions
    return vf.get_texts(revision_ids)
  File "/home/ian/bzr/robertc.repository/bzrlib/knit.py", line 967, in
get_texts
    return [''.join(l) for l in self.get_line_list(version_ids)]
  File "/home/ian/bzr/robertc.repository/bzrlib/knit.py", line 974, in
get_line_list
    text_map, content_map = self._get_content_maps(version_ids)
  File "/home/ian/bzr/robertc.repository/bzrlib/knit.py", line 986, in
_get_content_maps
    record_map = self._get_record_map(version_ids)
  File "/home/ian/bzr/robertc.repository/bzrlib/knit.py", line 956, in
_get_record_map
    self._data.read_records_iter(records):
  File "/home/ian/bzr/robertc.repository/bzrlib/knit.py", line 2150, in
read_records_iter
    content, digest = self._parse_record(version_id, data)
  File "/home/ian/bzr/robertc.repository/bzrlib/knit.py", line 2066, in
_parse_record
    version_id))
KnitCorrupt: Knit <bzrlib.knit._KnitAccess object at 0x84969ac> corrupt:
incorrect number of lines 8 != 1 for version
{robertc at robertcollins.net-20070912050636-c6fu3lybn1tbftk5}

bzr 0.92.0.dev.0 on python 2.5.1.final.0 (linux2)
arguments: ['./bzr', 'info', '-v']
encoding: 'UTF-8', fsenc: 'UTF-8', lang: 'en_AU.UTF-8'
plugins:
...

I get the same error (and on the same version) if I do the same in
bzr.dev. So, flipping across to my ~/bzrpack/packs.knits branch which
doesn't use that shared repo, I can find some info on that by using
./bzr log --show-ids. Here's a snippet:

    revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.47
    revision-id: robertc at robertcollins.net-20070914000845-qac6s3w4xj41ivmh
    parent: robertc at robertcollins.net-20070913032229-vdojubs6akxlk4ao
    committer: Robert Collins <robertc at robertcollins.net>
    branch nick: commit
    timestamp: Fri 2007-09-14 10:08:45 +1000
    message:
      Unbreak weaves.
    ------------------------------------------------------------
    revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.46
    revision-id: robertc at robertcollins.net-20070913032229-vdojubs6akxlk4ao
    parent: robertc at robertcollins.net-20070912050636-c6fu3lybn1tbftk5
    parent: pqm at pqm.ubuntu.com-20070912222627-zvqit350mf6gvrbh
    committer: Robert Collins <robertc at robertcollins.net>
    branch nick: commit
    timestamp: Thu 2007-09-13 13:22:29 +1000
    message:
      Merge bzr.dev
    ------------------------------------------------------------
    revno: 2592.1.25.2.7.1.28.1.6.1.3.1.9.2.1.3.74.1.45
    revision-id: robertc at robertcollins.net-20070912050636-c6fu3lybn1tbftk5
    parent: robertc at robertcollins.net-20070911090940-2lbw0h6ev8z2zp6w
    committer: Robert Collins <robertc at robertcollins.net>
    branch nick: commit
    timestamp: Wed 2007-09-12 15:06:36 +1000
    message:
      Remove another stat by using path_content_summary to avoid a
has_filename call.

I can't remember back that far as it was before my holidays. :-) Should
I be worried at all above the "Unbreak weaves" change or is that a red
herring? Perhaps other people ran into a the same problem weeks ago
(Jelmer suggested as much) and I'm only just seeing it now because I did
"./bzr pull" in my robertc.repository branch then?

Ian C.



More information about the bazaar mailing list