bzr cat over bzr protocol fails

Bug #175570 reported by Alexander Belchenko
2
Affects Status Importance Assigned to Milestone
Bazaar
Confirmed
Medium
Unassigned

Bug Description

C:\> bzr cat bzr://host/branches/Logic/.bzrignore
bzr: ERROR: bzrlib.errors.ObjectNotLocked: KnitPackRepository('bzr://host/.bzr/repository/') is not locked

Traceback (most recent call last):
  File "bzrlib\commands.pyc", line 802, in run_bzr_catch_errors
  File "bzrlib\commands.pyc", line 758, in run_bzr
  File "bzrlib\commands.pyc", line 492, in run_argv_aliases
  File "bzrlib\commands.pyc", line 768, in ignore_pipe
  File "bzrlib\builtins.pyc", line 2135, in run
  File "bzrlib\builtins.pyc", line 2158, in _run
  File "bzrlib\tree.pyc", line 386, in print_file
  File "bzrlib\revisiontree.pyc", line 79, in get_file_text
  File "bzrlib\revisiontree.pyc", line 75, in get_file_lines
  File "bzrlib\revisiontree.pyc", line 71, in _get_weave
  File "bzrlib\repofmt\pack_repo.pyc", line 1693, in get_weave_or_empty
  File "bzrlib\repofmt\pack_repo.pyc", line 1262, in ensure_loaded
ObjectNotLocked: KnitPackRepository('bzr://host/.bzr/repository/') is not locked

Tags: hpss
Revision history for this message
Andrew Bennetts (spiv) wrote :

Still present in 1.5.

Changed in bzr:
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Maciej Katafiasz (mathrick) wrote :

Still happens for me in 1.6b2. Tested with server running 1.5 (ie. protocol v2) and 1.6b2 (protocol v3).

Here's a minimal test case that manages to trigger that:

import bzrlib.branch as b
import bzrlib.memorytree as m

branch = b.Branch.open_containing("bzr://localhost/")
br = branch[0]
mtr = m.MemoryTree.create_on_branch(br)
mtr.lock_read()

# Traceback (most recent call last):
# File "/tmp/not_locked.py", line 9, in <module>
# mtr.lock_read()
# File "/usr/lib/python2.5/site-packages/bzrlib/memorytree.py", line 172, in lock_read
# self._populate_from_branch()
# File "/usr/lib/python2.5/site-packages/bzrlib/memorytree.py", line 224, in _populate_from_branch
# self._basis_tree.get_file(entry.file_id))
# File "/usr/lib/python2.5/site-packages/bzrlib/revisiontree.py", line 78, in get_file
# return StringIO(self.get_file_text(file_id))
# File "/usr/lib/python2.5/site-packages/bzrlib/revisiontree.py", line 75, in get_file_text
# return ''.join(self.get_file_lines(file_id))
# File "/usr/lib/python2.5/site-packages/bzrlib/revisiontree.py", line 71, in get_file_lines
# weave = self._get_weave(file_id)
# File "/usr/lib/python2.5/site-packages/bzrlib/revisiontree.py", line 67, in _get_weave
# self._repository.get_transaction())
# File "/usr/lib/python2.5/site-packages/bzrlib/repofmt/pack_repo.py", line 1780, in get_weave_or_empty
# self.repo._pack_collection.ensure_loaded()
# File "/usr/lib/python2.5/site-packages/bzrlib/repofmt/pack_repo.py", line 1340, in ensure_loaded
# raise errors.ObjectNotLocked(self.repo)
# bzrlib.errors.ObjectNotLocked: KnitPackRepository('bzr://localhost/.bzr/repository/') is not locked

Revision history for this message
Michael Hudson-Doyle (mwhudson) wrote :

This seems to be the crux of the issue:

>>> b = bzrlib.branch.Branch.open('.')
>>> b.lock_read()
>>> b.repository.is_locked()
True
>>> b = bzrlib.branch.Branch.open('bzr://localhost')
>>> b.lock_read()
>>> b.repository.is_locked()
False

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.