[1.5 critical] Branch.lock() does not set RemoteRepository.is_locked() == True
Russ Brown
pickscrape at gmail.com
Fri May 9 19:14:08 BST 2008
John Arbash Meinel wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Russ Brown wrote:
>
> |> In case it helps, I can reproduce this behaviour using 1.4 on both
> |> client and server.
>
> Thanks, it does help. I believe we have had this bug for a while. We
> haven't
> noticed because we had more code going through Branch._ensure_real().
> Specifically:
>
> |>> b = bzrlib.branch.Branch.open('bzr+ssh:///')
> |>> b.lock_read()
> |>> print b.is_locked(), b.repository.is_locked()
> True, False
>
> |>> b._ensure_real()
> |>> print b.is_locked(), b.repository.is_locked()
> True, True
> |>> b.unlock()
> |>> print b.is_locked(), b.repository.is_locked()
> False, False
> |>> b.lock_read()
> |>> print b.is_locked(), b.repository.is_locked()
> True, True
>
>
> Once we have b._real_branch, then the repo locking works as expected.
>
> John
> =:->
I don't know if it's related, but just in case it is...
If I try the same thing without the --short option, I get a different
error entirely (again using 1.4 at each end):
bzr: ERROR: exceptions.ValueError: key None not a plain string
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 846,
in run_bzr_catch_errors
return run_bzr(argv)
File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 802,
in run_bzr
ret = run(*run_argv)
File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 504,
in run_argv_aliases
return self.run(**all_cmd_args)
File "/usr/lib/python2.4/site-packages/bzrlib/commands.py", line 812,
in ignore_pipe
result = func(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/bzrlib/builtins.py", line
1791, in run
limit=limit)
File "/usr/lib/python2.4/site-packages/bzrlib/log.py", line 185, in
show_log
start_revision, end_revision, search, limit)
File "/usr/lib/python2.4/site-packages/bzrlib/log.py", line 215, in
_show_log
allow_single_merge_revision)
File "/usr/lib/python2.4/site-packages/bzrlib/log.py", line 273, in
calculate_view_revisions
view_revisions = _filter_revision_range(list(view_revs_iter),
File "/usr/lib/python2.4/site-packages/bzrlib/log.py", line 525, in
get_view_revisions
parent_map = dict(((key, value) for key, value in
File "/usr/lib/python2.4/site-packages/bzrlib/log.py", line 525, in
<generator expression>
parent_map = dict(((key, value) for key, value in
File "/usr/lib/python2.4/site-packages/bzrlib/graph.py", line 442, in
iter_ancestry
next_map = self.get_parent_map(pending)
File "/usr/lib/python2.4/site-packages/bzrlib/remote.py", line 802,
in get_parent_map
parent_map = self._get_parent_map(missing_revisions)
File "/usr/lib/python2.4/site-packages/bzrlib/remote.py", line 877,
in _get_parent_map
raise ValueError(
ValueError: key None not a plain string
bzr 1.4 on python 2.4.4 (linux2)
arguments: ['/usr/bin/bzr', 'log', 'bzr+ssh://hostname/path']
encoding: 'ANSI_X3.4-1968', fsenc: 'ANSI_X3.4-1968', lang: 'C'
plugins:
bzrtools
/usr/lib/python2.4/site-packages/bzrlib/plugins/bzrtools [1.4.0]
dbus
/usr/lib/python2.4/site-packages/bzrlib/plugins/dbus [unknown]
gtk
/usr/lib/python2.4/site-packages/bzrlib/plugins/gtk [0.94.0rc1]
launchpad
/usr/lib/python2.4/site-packages/bzrlib/plugins/launchpad [unknown]
rebase
/usr/lib/python2.4/site-packages/bzrlib/plugins/rebase [0.2.0]
svn
/usr/lib/python2.4/site-packages/bzrlib/plugins/svn [0.4.9]
Hope it helps!
--
Russ.
More information about the bazaar
mailing list