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:
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
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): cjwatson/ src/bzr/ brz/brz/ breezy/ commands. py", line 1017, in exception_ to_return_ code cjwatson/ src/bzr/ brz/brz/ breezy/ commands. py", line 1206, in run_bzr cjwatson/ src/bzr/ brz/brz/ breezy/ commands. py", line 757, in run_argv_aliases **all_cmd_ args) cjwatson/ src/bzr/ brz/brz/ breezy/ commands. py", line 782, in run cjwatson/ src/bzr/ brz/brz/ breezy/ commands. py", line 1223, in ignore_pipe cjwatson/ src/bzr/ brz/brz/ breezy/ builtins. py", line 1913, in run bzrdir_ info(controldir .ControlDir. open_containing (location) [0], cjwatson/ src/bzr/ brz/brz/ breezy/ controldir. py", line 771, in open_containing containing_ from_transport( transport) cjwatson/ src/bzr/ brz/brz/ breezy/ controldir. py", line 792, in open_containing _from_transport from_transport( a_transport) cjwatson/ src/bzr/ brz/brz/ breezy/ controldir. py", line 754, in open_from_transport do_catching_ redirections( cjwatson/ src/bzr/ brz/brz/ breezy/ transport/ __init_ _.py", line 1613, in do_catching_ redirections cjwatson/ src/bzr/ brz/brz/ breezy/ controldir. py", line 742, in find_format t.find_ format( transport, cjwatson/ src/bzr/ brz/brz/ breezy/ controldir. py", line 1165, in find_format probe_transport (transport) cjwatson/ src/bzr/ brz/brz/ breezy/ bzr/__init_ _.py", line 111, in probe_transport protocol_ version( ) cjwatson/ src/bzr/ brz/brz/ breezy/ bzr/smart/ medium. py", line 829, in protocol_version protocol. query_version( ) cjwatson/ src/bzr/ brz/brz/ breezy/ bzr/smart/ protocol. py", line 797, in query_version call(b' hello') cjwatson/ src/bzr/ brz/brz/ breezy/ bzr/smart/ protocol. py", line 635, in call _request. finished_ writing( ) cjwatson/ src/bzr/ brz/brz/ breezy/ bzr/smart/ medium. py", line 611, in finished_writing _finished_ writing( ) cjwatson/ src/bzr/ brz/brz/ breezy/ transport/ http/__ init__. py", line 2533, in _finished_writing send_http_ smart_request( self._buffer) cjwatson/ src/bzr/ brz/brz/ breezy/ transport/ http/__ init__. py", line 2498, in send_http_ smart_request cjwatson/ src/bzr/ brz/brz/ breezy/ transport/ http/__ init__. py", line 2216, in _post cjwatson/ src/bzr/ brz/brz/ breezy/ transport/ http/__ init__. py", line 1853, in request open(request) python3. 8/urllib/ request. py", line 525, in open python3. 8/urllib/ request. py", line 542, in _open chain(self. handle_ open, protocol, protocol + python3. 8/urllib/ request. py", line 502, in _call_chain cjwatson/ src/bzr/ brz/brz/ breezy/ transport/ http/__ init__. py", line 820, in https_open (request) cjwatson/ src/bzr/ brz/brz/ breezy/ transport/ http/__ init__. py", line 519, in __init__ __init_ _(self, 'CONNECT', request. get_full_ url(), cjwatson/ src/bzr/ brz/brz/ breezy/ transport/ http/__ init__. py", line 468, in __init__ request. Request. __init_ _( python3. 8/urllib/ request. py", line 328, in __init__ python3. 8/urllib/ request. py", line 354, in full_url python3. 8/urllib/ request. py", line 384, in _parse
File "/home/
return the_callable(*args, **kwargs)
File "/home/
ret = run(*run_argv)
File "/home/
return self.run(
File "/home/
return class_run(*args, **kwargs)
File "/home/
result = func(*args, **kwargs)
File "/home/
show_
File "/home/
return klass.open_
File "/home/
result = klass.open_
File "/home/
transport, format = _mod_transport.
File "/home/
return action(transport)
File "/home/
return transport, ControlDirForma
File "/home/
return prober.
File "/home/
server_version = medium.
File "/home/
client_
File "/home/
self.
File "/home/
self.
File "/home/
self.
File "/home/
data = self._medium.
File "/home/
code, body_filelike = t._post(bytes)
File "/home/
response = self.request(
File "/home/
response = self._opener.
File "/usr/lib/
response = self._open(req, data)
File "/usr/lib/
result = self._call_
File "/usr/lib/
result = func(*args)
File "/home/
connect = _ConnectRequest
File "/home/
Request.
File "/home/
urllib_
File "/usr/lib/
self.full_url = url
File "/usr/lib/
self._parse()
File "/usr/lib/
self.host, self.selector = _splithost(rest)
AttributeError: can't set attribute