'bzr update' in readonly checkout broken in bzr.dev r5557

Bug #701212 reported by John A Meinel
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
Fix Released
Critical
John A Meinel

Bug Description

Using a heavyweight checkout of "lp:bzr" it currently tries to write lock the Launchpad branch when doing "bzr update".

The failure is of the form:

$ bzr up
bzr: ERROR: Cannot lock LockDir(lp-80042960:///%2Bbranch/bzr/.bzr/branchlock): Transport operation not possible: readonly transport

The full traceback is:
37.899 Traceback (most recent call last):
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\commands.py", line 923, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\commands.py", line 1123, in run_bzr
    ret = run(*run_argv)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\commands.py", line 691, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\commands.py", line 710, in run
    return self._operation.run_simple(*args, **kwargs)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\cleanup.py", line 135, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\cleanup.py", line 165, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\builtins.py", line 1415, in run
    old_tip = branch.update(possible_transports)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\decorators.py", line 194, in write_locked
    result = unbound(self, *args, **kwargs)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\branch.py", line 2791, in update
    self.pull(master, overwrite=True)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\branch.py", line 1086, in pull
    possible_transports=possible_transports, *args, **kwargs)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\decorators.py", line 194, in write_locked
    result = unbound(self, *args, **kwargs)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\branch.py", line 3468, in pull
    _override_hook_target=_override_hook_target)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\branch.py", line 3582, in _pull
    overwrite)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\tag.py", line 202, in merge_to
    return operation.run(to_tags, overwrite, ignore_master)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\cleanup.py", line 131, in run
    self.cleanups, self.func, self, *args, **kwargs)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\cleanup.py", line 165, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\tag.py", line 234, in _merge_to_operation
    add_cleanup(master.lock_write().unlock)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\remote.py", line 2468, in lock_write
    remote_tokens = self._remote_lock_write(token)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\remote.py", line 2452, in _remote_lock_write
    repo_token or '', **err_context)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\remote.py", line 57, in _call
    return self._client.call(method, *args)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\smart\client.py", line 132, in call
    result, protocol = self.call_expecting_body(method, *args)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\smart\client.py", line 145, in call_expecting_body
    method, args, expect_response_body=True)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\smart\client.py", line 81, in _call_and_read_response
    expect_body=expect_response_body),
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\smart\message.py", line 306, in read_response_tuple
    _translate_error(self.args)
  File "C:\Users\jameinel\dev\bzr\bzr.dev\bzrlib\smart\message.py", line 355, in _translate_error
    raise errors.LockFailed(*error_args[:2])
LockFailed: Cannot lock LockDir(lp-80042960:///%2Bbranch/bzr/.bzr/branchlock): Transport operation not possible: readonly transport

I think this is a regression of functionality, so I'm marking it as Critical.

Tags: update

Related branches

John A Meinel (jameinel)
Changed in bzr:
assignee: nobody → canonical-bazaar (canonical-bazaar)
summary: - 'bzr update' broken in bzr.dev r5557
+ 'bzr update' in readonly checkout broken in bzr.dev r5557
Revision history for this message
John A Meinel (jameinel) wrote :

This appears to be caused by the change to "merge_to". Off-hand I'm guessing that it is trying to update the tag dictionary of the master branch, unconditionally. And even though the tags it is getting from is the same as where it is trying to set.

Changed in bzr:
assignee: canonical-bazaar (canonical-bazaar) → nobody
Vincent Ladeuil (vila)
Changed in bzr:
assignee: nobody → John A Meinel (jameinel)
milestone: 2.3.0 → 2.3b5
status: Confirmed → In Progress
Vincent Ladeuil (vila)
Changed in bzr:
status: In Progress → 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.