Comment 4 for bug 1876948

Revision history for this message
Colin Watson (cjwatson) wrote :

Sorry, but this is still reproducible with current Breezy trunk, r7521. Trying to reproduce it against Launchpad runs into other problems which I need to look into, but here's a reproducer with a random branch I had lying around on my home network, and assuming that you have a CONNECT-capable proxy on port 3128:

$ https_proxy=http://localhost:3128/ BRZ_PLUGIN_PATH=-site:-user ./brz info https://riva.dynamic.greenend.org.uk/~cjwatson/bzr/pcmciautils/upstream
brz: ERROR: AttributeError: can't set attribute

Traceback (most recent call last):
  File "/home/cjwatson/src/bzr/brz/brz/breezy/commands.py", line 1017, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/commands.py", line 1206, in run_bzr
    ret = run(*run_argv)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/commands.py", line 757, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/commands.py", line 782, in run
    return class_run(*args, **kwargs)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/commands.py", line 1223, in ignore_pipe
    result = func(*args, **kwargs)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/builtins.py", line 1913, in run
    show_bzrdir_info(controldir.ControlDir.open_containing(location)[0],
  File "/home/cjwatson/src/bzr/brz/brz/breezy/controldir.py", line 771, in open_containing
    return klass.open_containing_from_transport(transport)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/controldir.py", line 792, in open_containing_from_transport
    result = klass.open_from_transport(a_transport)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/controldir.py", line 754, in open_from_transport
    transport, format = _mod_transport.do_catching_redirections(
  File "/home/cjwatson/src/bzr/brz/brz/breezy/transport/__init__.py", line 1613, in do_catching_redirections
    return action(transport)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/controldir.py", line 742, in find_format
    return transport, ControlDirFormat.find_format(transport,
  File "/home/cjwatson/src/bzr/brz/brz/breezy/controldir.py", line 1165, in find_format
    return prober.probe_transport(transport)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/bzr/__init__.py", line 111, in probe_transport
    server_version = medium.protocol_version()
  File "/home/cjwatson/src/bzr/brz/brz/breezy/bzr/smart/medium.py", line 829, in protocol_version
    client_protocol.query_version()
  File "/home/cjwatson/src/bzr/brz/brz/breezy/bzr/smart/protocol.py", line 797, in query_version
    self.call(b'hello')
  File "/home/cjwatson/src/bzr/brz/brz/breezy/bzr/smart/protocol.py", line 635, in call
    self._request.finished_writing()
  File "/home/cjwatson/src/bzr/brz/brz/breezy/bzr/smart/medium.py", line 611, in finished_writing
    self._finished_writing()
  File "/home/cjwatson/src/bzr/brz/brz/breezy/transport/http/__init__.py", line 2533, in _finished_writing
    data = self._medium.send_http_smart_request(self._buffer)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/transport/http/__init__.py", line 2498, in send_http_smart_request
    code, body_filelike = t._post(bytes)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/transport/http/__init__.py", line 2216, in _post
    response = self.request(
  File "/home/cjwatson/src/bzr/brz/brz/breezy/transport/http/__init__.py", line 1853, in request
    response = self._opener.open(request)
  File "/usr/lib/python3.8/urllib/request.py", line 525, in open
    response = self._open(req, data)
  File "/usr/lib/python3.8/urllib/request.py", line 542, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/transport/http/__init__.py", line 820, in https_open
    connect = _ConnectRequest(request)
  File "/home/cjwatson/src/bzr/brz/brz/breezy/transport/http/__init__.py", line 519, in __init__
    Request.__init__(self, 'CONNECT', request.get_full_url(),
  File "/home/cjwatson/src/bzr/brz/brz/breezy/transport/http/__init__.py", line 468, in __init__
    urllib_request.Request.__init__(
  File "/usr/lib/python3.8/urllib/request.py", line 328, in __init__
    self.full_url = url
  File "/usr/lib/python3.8/urllib/request.py", line 354, in full_url
    self._parse()
  File "/usr/lib/python3.8/urllib/request.py", line 384, in _parse
    self.host, self.selector = _splithost(rest)
AttributeError: can't set attribute