branching dev6 when ghosts are present fails

Bug #336383 reported by Ian Clatworthy
2
Affects Status Importance Assigned to Milestone
Bazaar
Fix Released
High
Unassigned

Bug Description

I've generated a gc-plain-chk255 version of the bzr 1.12 branch. Trying to benchmark this fails because the branch commands fails. The currently running code is brisbane-core rev 3845 and groupcompress rev 56. The branch was converted on 26/02/2009 so it was done with slightly earlier versions.

Here's the error ...

$ bzr-brisbane branch work_root_for-bzr-gcchk255 xx -Derror
bzr: ERROR: bzrlib.errors.RevisionNotPresent: Revision {[('purpose.txt-20050309044946-a4132525edac8d4c', '<email address hidden>')]} not present in "<bzrlib.plugins.groupcompress.groupcompress.GroupCompressVersionedFiles object at 0x1fdc8d0>".

Traceback (most recent call last):
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/commands.py", line 921, in run_bzr_catch_errors
    return run_bzr(argv)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/commands.py", line 866, in run_bzr
    ret = run(*run_argv)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/commands.py", line 547, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/builtins.py", line 1102, in run
    source_branch=br_from)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/bzrdir.py", line 1121, in sprout
    result_repo.fetch(source_repository, revision_id=revision_id)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/repository.py", line 1161, in fetch
    find_ghosts=find_ghosts)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/decorators.py", line 192, in write_locked
    result = unbound(self, *args, **kwargs)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/repository.py", line 2857, in fetch
    pb=pb, find_ghosts=find_ghosts)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/fetch.py", line 115, in __init__
    self.__fetch()
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/fetch.py", line 142, in __fetch
    self._fetch_everything_for_search(search, pp)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/fetch.py", line 161, in _fetch_everything_for_search
    stream, from_format, [])
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/repository.py", line 3806, in insert_stream
    return self._locked_insert_stream(stream, src_format)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/repository.py", line 3818, in _locked_insert_stream
    self.target_repo.texts.insert_record_stream(substream)
  File "/home/ian/.bazaar/plugins/groupcompress/groupcompress.py", line 669, in insert_record_stream
    for _ in self._insert_record_stream(stream):
  File "/home/ian/.bazaar/plugins/groupcompress/groupcompress.py", line 711, in _insert_record_stream
    raise errors.RevisionNotPresent([record.key], self)
RevisionNotPresent: Revision {[('purpose.txt-20050309044946-a4132525edac8d4c', '<email address hidden>')]} not present in "<bzrlib.plugins.groupcompress.groupcompress.GroupCompressVersionedFiles object at 0x1fdc8d0>".
ian@humpback:~/scm-benchmark/bm.common/results/2009-03-02-0557/bzr-gcchk255-20090213.tar.bz2-8738$ bzr-brisbane branch work_root_for-bzr-gcchk255 xx -Derror
bzr: ERROR: bzrlib.errors.RevisionNotPresent: Revision {[('purpose.txt-20050309044946-a4132525edac8d4c', '<email address hidden>')]} not present in "<bzrlib.plugins.groupcompress.groupcompress.GroupCompressVersionedFiles object at 0x1fdc8d0>".

Traceback (most recent call last):
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/commands.py", line 921, in run_bzr_catch_errors
    return run_bzr(argv)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/commands.py", line 866, in run_bzr
    ret = run(*run_argv)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/commands.py", line 547, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/builtins.py", line 1102, in run
    source_branch=br_from)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/bzrdir.py", line 1121, in sprout
    result_repo.fetch(source_repository, revision_id=revision_id)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/repository.py", line 1161, in fetch
    find_ghosts=find_ghosts)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/decorators.py", line 192, in write_locked
    result = unbound(self, *args, **kwargs)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/repository.py", line 2857, in fetch
    pb=pb, find_ghosts=find_ghosts)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/fetch.py", line 115, in __init__
    self.__fetch()
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/fetch.py", line 142, in __fetch
    self._fetch_everything_for_search(search, pp)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/fetch.py", line 161, in _fetch_everything_for_search
    stream, from_format, [])
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/repository.py", line 3806, in insert_stream
    return self._locked_insert_stream(stream, src_format)
  File "/home/ian/bzr/repo/brisbane-core/bzrlib/repository.py", line 3818, in _locked_insert_stream
    self.target_repo.texts.insert_record_stream(substream)
  File "/home/ian/.bazaar/plugins/groupcompress/groupcompress.py", line 669, in insert_record_stream
    for _ in self._insert_record_stream(stream):
  File "/home/ian/.bazaar/plugins/groupcompress/groupcompress.py", line 711, in _insert_record_stream
    raise errors.RevisionNotPresent([record.key], self)
RevisionNotPresent: Revision {[('purpose.txt-20050309044946-a4132525edac8d4c', '<email address hidden>')]} not present in "<bzrlib.plugins.groupcompress.groupcompress.GroupCompressVersionedFiles object at 0x1fdc8d0>".

Revision history for this message
John A Meinel (jameinel) wrote :

Note that we seemed to actually have this working in brisbane-core, but recently I encountered this again in the new '--dev6' codebase.

Specifically, I'm using a Launchpad conversion, which has a lot of old "Arch-1:" ghosts in the ancestry.
Note that I am seeing this when doing "bzr branch" after converting to --dev6 and *not* using Stacked branches.

The traceback in that case is:
151.024 Traceback (most recent call last):
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/commands.py", line 729, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/commands.py", line 924, in run_bzr
    ret = run(*run_argv)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/commands.py", line 560, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/builtins.py", line 1133, in run
    source_branch=br_from)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/bzrdir.py", line 1178, in sprout
    result_repo.fetch(source_repository, fetch_spec=fetch_spec)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/repository.py", line 1521, in fetch
    find_ghosts=find_ghosts, fetch_spec=fetch_spec)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/decorators.py", line 192, in write_locked
    result = unbound(self, *args, **kwargs)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/repository.py", line 3085, in fetch
    pb=pb, find_ghosts=find_ghosts)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/fetch.py", line 82, in __init__
    self.__fetch()
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/fetch.py", line 108, in __fetch
    self._fetch_everything_for_search(search)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/fetch.py", line 137, in _fetch_everything_for_search
    stream, from_format, [])
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/repository.py", line 3963, in insert_stream
    return self._locked_insert_stream(stream, src_format)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/repository.py", line 4011, in _locked_insert_stream
    substream)
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/groupcompress.py", line 1349, in insert_record_stream
    for _ in self._insert_record_stream(stream, random_id=False):
  File "/home/jameinel/dev/bzr/bzr.dev/bzrlib/groupcompress.py", line 1406, in _insert_record_stream
    raise errors.RevisionNotPresent(record.key, self)
RevisionNotPresent: Revision {('Arch-1:brad...--devel--0--patch-154',)} not present in "<bzrlib.groupcompress.GroupCompressVersionedFiles object at 0x880be6c>"

At this point it is inserting 'revisions', I really don't understand why the source stream is grabbing a revision which is a ghost.

I should also point out that this revision does not seem to be on the mainline, as the history of Launchpad seems to travel back to rev 1: 'Arch-1:<email address hidden>%soyuz--devel--0--base-0' just fine.

At first, I thought my symptoms might have been bug #368418, but that one has to do with stacking and missing parent inventories, and my case is about the StreamSource trying to transmit an Absent record for a revision text..

Changed in bzr:
importance: Undecided → High
status: New → Triaged
summary: - branching gc-plain-chk255 version of bzr 1.12 fails
+ branching dev6 when ghosts are present fails
Revision history for this message
Jelmer Vernooij (jelmer) wrote :

Isn't this fixed now?

Revision history for this message
John A Meinel (jameinel) wrote :

fairly certain that this has been fixed for a while.

Changed in bzr:
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.