bzr commit to a checkout binded to a remote branch throws an exception when offline

Bug #475575 reported by Cody A.W. Somerville
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar
New
Undecided
Unassigned

Bug Description

Bzr 2.0.2 dies ungracefully when trying to commit to a checkout binded to a remote branch that is inaccessible such as when offline.

Tue 2009-11-03 16:29:17 -0500
0.082 bzr arguments: [u'commit', u'-m', u'<redacted>.']
0.112 looking for plugins in /home/cody-somerville/.bazaar/plugins
0.200 looking for plugins in /usr/lib/python2.6/dist-packages/bzrlib/plugins
0.247 encoding stdout as sys.stdout encoding 'UTF-8'
0.319 opening working tree '/home/cody-somerville/Projects/<redacted>/development'
0.786 ssh implementation is OpenSSH
0.831 Could not connect to bound branch, falling back to local nick.
 Connection closed: Unexpected end of message. Please check connectivity and permissions, and report a bug if problems persist.
0.833 preparing to commit
0.952 Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/bzrlib/commands.py", line 842, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/usr/lib/python2.6/dist-packages/bzrlib/commands.py", line 1037, in run_bzr
    ret = run(*run_argv)
  File "/usr/lib/python2.6/dist-packages/bzrlib/commands.py", line 654, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/usr/lib/python2.6/dist-packages/bzrlib/builtins.py", line 3051, in run
    exclude=safe_relpath_files(tree, exclude))
  File "/usr/lib/python2.6/dist-packages/bzrlib/decorators.py", line 192, in write_locked
    result = unbound(self, *args, **kwargs)
  File "/usr/lib/python2.6/dist-packages/bzrlib/workingtree_4.py", line 197, in commit
    result = WorkingTree3.commit(self, message, revprops, *args, **kwargs)
  File "/usr/lib/python2.6/dist-packages/bzrlib/decorators.py", line 192, in write_locked
    result = unbound(self, *args, **kwargs)
  File "/usr/lib/python2.6/dist-packages/bzrlib/mutabletree.py", line 229, in commit
    *args, **kwargs)
  File "/usr/lib/python2.6/dist-packages/bzrlib/commit.py", line 305, in commit
    self._check_bound_branch(possible_master_transports)
  File "/usr/lib/python2.6/dist-packages/bzrlib/commit.py", line 448, in _check_bound_branch
    possible_master_transports)
  File "/usr/lib/python2.6/dist-packages/bzrlib/decorators.py", line 138, in read_locked
    result = unbound(self, *args, **kwargs)
  File "/usr/lib/python2.6/dist-packages/bzrlib/branch.py", line 2375, in get_master_branch
    possible_transports=possible_transports)
  File "/usr/lib/python2.6/dist-packages/bzrlib/branch.py", line 168, in open
    possible_transports=possible_transports)
  File "/usr/lib/python2.6/dist-packages/bzrlib/bzrdir.py", line 844, in open
    return BzrDir.open_from_transport(t, _unsupported=_unsupported)
  File "/usr/lib/python2.6/dist-packages/bzrlib/bzrdir.py", line 879, in open_from_transport
    return format.open(transport, _found=True)
  File "/usr/lib/python2.6/dist-packages/bzrlib/bzrdir.py", line 2065, in open
    return self._open(transport)
  File "/usr/lib/python2.6/dist-packages/bzrlib/bzrdir.py", line 3294, in _open
    return remote.RemoteBzrDir(transport, self)
  File "/usr/lib/python2.6/dist-packages/bzrlib/remote.py", line 114, in __init__
    response = self._call('BzrDir.open', path)
  File "/usr/lib/python2.6/dist-packages/bzrlib/remote.py", line 52, in _call
    return self._client.call(method, *args)
  File "/usr/lib/python2.6/dist-packages/bzrlib/smart/client.py", line 129, in call
    result, protocol = self.call_expecting_body(method, *args)
  File "/usr/lib/python2.6/dist-packages/bzrlib/smart/client.py", line 142, in call_expecting_body
    method, args, expect_response_body=True)
  File "/usr/lib/python2.6/dist-packages/bzrlib/smart/client.py", line 87, in _call_and_read_response
    readv_body=readv_body, body_stream=body_stream)
  File "/usr/lib/python2.6/dist-packages/bzrlib/smart/client.py", line 42, in _send_request
    protocol_version)
  File "/usr/lib/python2.6/dist-packages/bzrlib/smart/client.py", line 112, in _construct_protocol
    request = self._medium.get_request()
  File "/usr/lib/python2.6/dist-packages/bzrlib/smart/medium.py", line 699, in get_request
    return SmartClientStreamMediumRequest(self)
  File "/usr/lib/python2.6/dist-packages/bzrlib/smart/medium.py", line 904, in __init__
    raise errors.TooManyConcurrentRequests(self._medium)
TooManyConcurrentRequests: The medium 'SmartSSHClientMedium(connected=True, username=u'cody-somerville', host='bazaar.launchpad.net', port=None)' has reached its concurrent request limit. Be sure to finish_writing and finish_reading on the currently open request.

1.117 return code 4

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

This has already been fixed on trunk. This is the second bug report I've seen about this today, so perhaps we should backport the fix to the 2.0.x series?

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.