bzr dpush crashes. NoSuchId: The file id "None" is not present in the tree

Bug #1460459 reported by mitsuteru
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar Git Plugin
New
Undecided
Unassigned
Breezy
Invalid
Undecided
Unassigned

Bug Description

bzr dpush crashes. I just want available(convert-able) commit as much as possible, but the exception terminates the script. Is there any work arounds?

% mkdir git-repo.git
% cd git-repo.git
% bzr init --format=git-bare
% cd ../trunk # This is bazaar repository
% bzr dpush ../git-repo.git

Bazaar 2.6.0
git version 2.4.1
dulwich (0.10.1)
Python 2.7.6
bzr-git 0.6.8

[.bzr.log]
20172.811 Transferred: 0kB (0.0kB/s r:0kB w:0kB)
20172.834 Traceback (most recent call last):
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 930, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 1121, in run_bzr
    ret = run(*run_argv)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 673, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 697, in run
    return self._operation.run_simple(*args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/cleanup.py", line 136, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/cleanup.py", line 166, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/foreign.py", line 319, in run
    push_result = source_branch.push(target_branch, lossy=True)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/branch.py", line 1120, in push
    lossy, *args, **kwargs)
  File "/Users/xxx/.bazaar/plugins/git/branch.py", line 1147, in push
    update_refs, lossy=lossy)
  File "/Users/xxx/.bazaar/plugins/git/push.py", line 262, in fetch_refs
    [(git_sha, bzr_revid) for (git_sha, bzr_revid) in new_refs.values() if git_sha is None or not git_sha.startswith('ref:')], lossy=lossy)
  File "/Users/xxx/.bazaar/plugins/git/push.py", line 280, in fetch_objects
    todo = list(self.missing_revisions(revs))
  File "/Users/xxx/.bazaar/plugins/git/push.py", line 220, in missing_revisions
    self._revision_needs_fetching(sha1, revid)):
  File "/Users/xxx/.bazaar/plugins/git/push.py", line 183, in _revision_needs_fetching
    sha_id = self.source_store._lookup_revision_sha1(revid)
  File "/Users/xxx/.bazaar/plugins/git/object_store.py", line 580, in _lookup_revision_sha1
    self._update_sha_map(revid)
  File "/Users/xxx/.bazaar/plugins/git/object_store.py", line 384, in _update_sha_map
    self._update_sha_map_revision(revid)
  File "/Users/xxx/.bazaar/plugins/git/object_store.py", line 484, in _update_sha_map_revision
    for path, obj, ie in self._revision_to_objects(rev, tree, lossy=(not self.mapping.roundtripping)):
  File "/Users/xxx/.bazaar/plugins/git/object_store.py", line 438, in _revision_to_objects
    self._cache.idmap, unusual_modes, self.mapping.BZR_DUMMY_FILE):
  File "/Users/xxx/.bazaar/plugins/git/object_store.py", line 296, in _tree_to_objects
    assert tree.kind(file_id) == 'directory'
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/revisiontree.py", line 173, in kind
    return inv[inv_file_id].kind
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/inventory.py", line 1868, in __getitem__
    raise errors.NoSuchId(self, file_id)
NoSuchId: The file id "None" is not present in the tree <bzrlib.inventory.CHKInventory object at 0x11ec22cd0>.

20172.835 return code 3
75957.658 Transferred: 0kB (0.0kB/s r:0kB w:0kB)
75957.689 Traceback (most recent call last):
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 930, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 1121, in run_bzr
    ret = run(*run_argv)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 673, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 697, in run
    return self._operation.run_simple(*args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/cleanup.py", line 136, in run_simple
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/cleanup.py", line 166, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/foreign.py", line 319, in run
    push_result = source_branch.push(target_branch, lossy=True)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/branch.py", line 1120, in push
    lossy, *args, **kwargs)
  File "/Users/xxx/.bazaar/plugins/git/branch.py", line 1147, in push
    update_refs, lossy=lossy)
  File "/Users/xxx/.bazaar/plugins/git/push.py", line 262, in fetch_refs
    [(git_sha, bzr_revid) for (git_sha, bzr_revid) in new_refs.values() if git_sha is None or not git_sha.startswith('ref:')], lossy=lossy)
  File "/Users/xxx/.bazaar/plugins/git/push.py", line 280, in fetch_objects
    todo = list(self.missing_revisions(revs))
  File "/Users/xxx/.bazaar/plugins/git/push.py", line 220, in missing_revisions
    self._revision_needs_fetching(sha1, revid)):
  File "/Users/xxx/.bazaar/plugins/git/push.py", line 183, in _revision_needs_fetching
    sha_id = self.source_store._lookup_revision_sha1(revid)
  File "/Users/xxx/.bazaar/plugins/git/object_store.py", line 580, in _lookup_revision_sha1
    self._update_sha_map(revid)
  File "/Users/xxx/.bazaar/plugins/git/object_store.py", line 384, in _update_sha_map
    self._update_sha_map_revision(revid)
  File "/Users/xxx/.bazaar/plugins/git/object_store.py", line 484, in _update_sha_map_revision
    for path, obj, ie in self._revision_to_objects(rev, tree, lossy=(not self.mapping.roundtripping)):
  File "/Users/xxx/.bazaar/plugins/git/object_store.py", line 438, in _revision_to_objects
    self._cache.idmap, unusual_modes, self.mapping.BZR_DUMMY_FILE):
  File "/Users/xxx/.bazaar/plugins/git/object_store.py", line 296, in _tree_to_objects
    assert tree.kind(file_id) == 'directory'
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/revisiontree.py", line 173, in kind
    return inv[inv_file_id].kind
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/inventory.py", line 1868, in __getitem__
    raise errors.NoSuchId(self, file_id)
NoSuchId: The file id "None" is not present in the tree <bzrlib.inventory.CHKInventory object at 0x11ec22cd0>.

20172.835 return code 3
75957.658 Transferred: 0kB (0.0kB/s r:0kB w:0kB)
75957.689 Traceback (most recent call last):
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 930, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 1121, in run_bzr
    ret = run(*run_argv)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 673, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/commands.py", line 697, in run
    return self._operation.run_simple(*args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/cleanup.py", line 136, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/cleanup.py", line 166, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/builtins.py", line 3774, in run
    check_dwim(path, verbose, do_branch=branch, do_repo=repo, do_tree=tree)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/check.py", line 435, in check_dwim
    check_repo=do_repo)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/repository.py", line 1181, in check
    check_repo=check_repo)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/decorators.py", line 155, in read_locked
    result = unbound(self, *args, **kwargs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/vf_repository.py", line 1955, in _check
    result.check(callback_refs)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/check.py", line 117, in check
    self.check_weaves()
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/check.py", line 308, in check_weaves
    self._check_weaves(storebar)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/check.py", line 317, in _check_weaves
    ancestors=self.ancestors)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/vf_repository.py", line 1931, in _get_versioned_file_checker
    text_key_references=text_key_references, ancestors=ancestors)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/vf_repository.py", line 2495, in __init__
    text_key_references=text_key_references, ancestors=ancestors)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/vf_repository.py", line 1584, in _generate_text_key_index
    text_key_references = self.find_text_key_references()
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/repofmt/groupcompress_repo.py", line 1082, in find_text_key_references
    for _, entry in inv.iter_entries():
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/inventory.py", line 698, in iter_entries
    new_children = ie.children.items()
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/inventory.py", line 2205, in children
    for file_id_key, bytes in id_to_entry.iteritems(child_keys):
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/chk_map.py", line 1049, in iteritems
    for node, node_filter in self._iter_nodes(store, key_filter=key_filter):
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/chk_map.py", line 1192, in _iter_nodes
    bytes = record.get_bytes_as('fulltext')
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/groupcompress.py", line 452, in get_bytes_as
    self._manager._prepare_for_extract()
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/groupcompress.py", line 576, in _prepare_for_extract
    self._block._ensure_content(self._last_byte)
  File "/usr/local/Cellar/bazaar/2.6.0/libexec/bzrlib/groupcompress.py", line 166, in _ensure_content
    z_content, num_bytes + _ZLIB_DECOMP_WINDOW)
KeyboardInterrupt

75957.690 return code 3

mitsuteru (mitsu-teru3)
affects: bzr → bzr-git
Revision history for this message
mitsuteru (mitsu-teru3) wrote :

Hello, anyone have any idea that just skip a non-convertible(illegal) commit and process the script? I don't need ALL commits, but want as much as possible commits.

Revision history for this message
Jelmer Vernooij (jelmer) wrote : Something other than bzr-git

In that case bzr-git won't help; it can only do deterministic conversions. You probably
want something like a combination of bzr-fastexport and git-fastimport, or git-bzr-ng.

Jelmer

Revision history for this message
mitsuteru (mitsu-teru3) wrote :

Too bad... I also tried 'bzr-fastexport git-fastimport', but failed as follows. Let me try the 'git-bzr-ng'.

Stack trace:
% bzr fast-export --export-marks=marks.bzr ../trunk | git fast-import --export-marks=marks.git
...
fatal: Path XXX not in branch
fast-import: dumping crash report to .git/fast_import_crash_14082
bzr: broken pipe

Mitsuteru

Jelmer Vernooij (jelmer)
Changed in brz-git:
status: New → Incomplete
Jelmer Vernooij (jelmer)
Changed in brz-git:
status: Incomplete → Invalid
Jelmer Vernooij (jelmer)
affects: brz-git → brz
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.