[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