After I used Bazaar in combination with SSHFS two merge repositories between two computers, the repository in my main computer started dysfunctioning.

Bug #1746994 reported by Tommi Rimpiläinen on 2018-02-02
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
Undecided
Unassigned

Bug Description

I have been attempting to use version control to keep my files synchronized between two workstations that I use of my project. The problem was initially that the SSH connection between the computers only worked to one direction, that is, I was able to use SSH to login to my main computer, Kepler, but not to my second computer, Cauchy. Merging changes from Kepler to Cauchy was easy. But mergin changes to the other direction proved more difficult without SSH login available. I could, perhaps, have used the "push" command instead of merge but I find it creepy that the command collapses my working tree, so I have not grown accustomed to using the command. Instead, I mounted my home folder in the Kepler computer directly to my file system with SSHFS and then merged the changes like when working on one and the same computer. After this (coincidentally perhaps) my Bazaar repository at Kepler has been dysfunctioning. I'm not able to use it for anything, even to display status. In hindsight, I worry that there might have been a mismatch between the Bazaar versions of the two computers.

Here is the traceback that the program gives when a status query is made:
bzr: ERROR: exceptions.AssertionError: get_next() called when there are no chars left

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/bzrlib/commands.py", line 930, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/bzrlib/commands.py", line 1121, in run_bzr
    ret = run(*run_argv)
  File "/usr/lib/python2.7/site-packages/bzrlib/commands.py", line 673, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/lib/python2.7/site-packages/bzrlib/commands.py", line 697, in run
    return self._operation.run_simple(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/bzrlib/cleanup.py", line 136, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/bzrlib/cleanup.py", line 166, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/bzrlib/commands.py", line 1138, in ignore_pipe
    result = func(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/bzrlib/builtins.py", line 414, in run
    classify=not no_classify)
  File "/usr/lib/python2.7/site-packages/bzrlib/status.py", line 175, in show_tree_status
    classify=classify)
  File "/usr/lib/python2.7/site-packages/bzrlib/status.py", line 75, in report_changes
    want_unversioned=want_unversioned)
  File "/usr/lib/python2.7/site-packages/bzrlib/tree.py", line 103, in changes_from
    want_unversioned=want_unversioned,
  File "/usr/lib/python2.7/site-packages/bzrlib/decorators.py", line 155, in read_locked
    result = unbound(self, *args, **kwargs)
  File "/usr/lib/python2.7/site-packages/bzrlib/tree.py", line 1112, in compare
    want_unversioned=want_unversioned)
  File "/usr/lib/python2.7/site-packages/bzrlib/delta.py", line 129, in _compare_trees
    want_unversioned=want_unversioned):
  File "/usr/lib/python2.7/site-packages/bzrlib/tree.py", line 112, in iter_changes
    extra_trees, require_versioned, want_unversioned=want_unversioned)
  File "/usr/lib/python2.7/site-packages/bzrlib/workingtree_4.py", line 2222, in iter_changes
    state._read_dirblocks_if_needed()
  File "/usr/lib/python2.7/site-packages/bzrlib/dirstate.py", line 2392, in _read_dirblocks_if_needed
    _read_dirblocks(self)
  File "bzrlib/_dirstate_helpers_pyx.pyx", line 797, in bzrlib._dirstate_helpers_pyx._read_dirblocks (bzrlib/_dirstate_helpers_pyx.c:6350)
  File "bzrlib/_dirstate_helpers_pyx.pyx", line 763, in bzrlib._dirstate_helpers_pyx.Reader._parse_dirblocks (bzrlib/_dirstate_helpers_pyx.c:5969)
  File "bzrlib/_dirstate_helpers_pyx.pyx", line 669, in bzrlib._dirstate_helpers_pyx.Reader._get_entry (bzrlib/_dirstate_helpers_pyx.c:5374)
  File "bzrlib/_dirstate_helpers_pyx.pyx", line 578, in bzrlib._dirstate_helpers_pyx.Reader.get_next_str (bzrlib/_dirstate_helpers_pyx.c:5029)
  File "bzrlib/_dirstate_helpers_pyx.pyx", line 560, in bzrlib._dirstate_helpers_pyx.Reader.get_next (bzrlib/_dirstate_helpers_pyx.c:4838)
AssertionError: get_next() called when there are no chars left

bzr 2.7.0 on python 2.7.14 (Linux-4.14.15-1-ARCH-x86_64-with-glibc2.2.5)
arguments: ['/usr/bin/bzr', 'status']
plugins: bash_completion[2.7.0], changelog_merge[2.7.0], grep[2.7.0],
    launchpad[2.7.0], netrc_credential_store[2.7.0], news_merge[2.7.0],
    po_merge[2.7.0], weave_fmt[2.7.0]
encoding: 'utf-8', fsenc: 'UTF-8', lang: 'fi_FI.UTF-8'

*** Bazaar has encountered an internal error. This probably indicates a
    bug in Bazaar. You can help us fix it by filing a bug report at
        https://bugs.launchpad.net/bzr/+filebug
    including this traceback and a description of the problem.

Jelmer Vernooij (jelmer) wrote :

It doesn't matter if you're running different Bazaar versions.

However, I'm not sure whether SSHFS provides proper POSIX file semantics.

Jelmer Vernooij (jelmer) on 2018-05-11
Changed in bzr:
status: New → Incomplete
Launchpad Janitor (janitor) wrote :

[Expired for Bazaar because there has been no activity for 60 days.]

Changed in bzr:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers