Comment 1 for bug 336383

Revision history for this message
John A Meinel (jameinel) wrote : Re: branching gc-plain-chk255 version of bzr 1.12 fails

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..