[Bug 1871006] Re: add-apt-repository crashed with AttributeError in _get_https_content_py3(): 'InvalidURL' object has no attribute 'reason'
Pablo
1871006 at bugs.launchpad.net
Mon Apr 6 11:12:43 UTC 2020
Hi Sebastien,
I used exactly the same command I used to add the ppa, except that I
added the flag --remove. Here is the command:
sudo add-apt-repository --remove ppa:"deb [arch=amd64]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
The thing here is that, even if the command had the wrong parameter
(which seems to be the case), the exception should still be caught and a
proper error message be shown, shouldn't it?
The command to add this ppa (without the --remove flag) has been taken
from the official Docker page.
In addition to this error, I found that, having this ppa (which could
not be found due to Docker not having released the related version to
"focal"), when doing a refresh from the Software & Updates package, it
fails showing the Report Bug window and freezes, not letting the user to
close it. I guess this bug would appear with any ppa that cannot be
found.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to software-properties in Ubuntu.
https://bugs.launchpad.net/bugs/1871006
Title:
add-apt-repository crashed with AttributeError in
_get_https_content_py3(): 'InvalidURL' object has no attribute
'reason'
Status in software-properties package in Ubuntu:
Incomplete
Bug description:
Release: 20.04 Ubuntu Focal Fossa (development branch)
Package/Program: add-apt-repository
Command: add-apt-repository --remove
Expected response:
Either to get the ppa removed or the exception handled with a message "unable to find the URL"
What happened instead:
The traceback of an exception was printed in the terminal.
Traceback:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 138, in _get_https_content_py3
lp_page = urllib.request.urlopen(request,
File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
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 "/usr/lib/python3.8/urllib/request.py", line 1362, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File "/usr/lib/python3.8/urllib/request.py", line 1319, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/usr/lib/python3.8/http/client.py", line 1230, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.8/http/client.py", line 1241, in _send_request
self.putrequest(method, url, **skips)
File "/usr/lib/python3.8/http/client.py", line 1092, in putrequest
self._validate_path(url)
File "/usr/lib/python3.8/http/client.py", line 1183, in _validate_path
raise InvalidURL(f"URL can't contain control characters. {url!r} "
http.client.InvalidURL: URL can't contain control characters. '/api/devel/~deb [arch=amd64] https/+archive/ubuntu/ppa' (found at least ' ')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 380, in get_ppa_info
ret = get_ppa_info_from_lp(user, ppa)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 110, in get_ppa_info_from_lp
return get_info_from_lp(lp_url)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 104, in get_info_from_lp
return get_info_from_https(lp_url, True)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 96, in get_info_from_https
data = func(lp_url=url, accept_json=accept_json, retry_delays=retry_delays)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 143, in _get_https_content_py3
"Error reading %s (%d tries): %s" % (lp_url, trynum, e.reason),
AttributeError: 'InvalidURL' object has no attribute 'reason'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 138, in _get_https_content_py3
lp_page = urllib.request.urlopen(request,
File "/usr/lib/python3.8/urllib/request.py", line 222, in urlopen
return opener.open(url, data, timeout)
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 "/usr/lib/python3.8/urllib/request.py", line 1362, in https_open
return self.do_open(http.client.HTTPSConnection, req,
File "/usr/lib/python3.8/urllib/request.py", line 1319, in do_open
h.request(req.get_method(), req.selector, req.data, headers,
File "/usr/lib/python3.8/http/client.py", line 1230, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.8/http/client.py", line 1241, in _send_request
self.putrequest(method, url, **skips)
File "/usr/lib/python3.8/http/client.py", line 1092, in putrequest
self._validate_path(url)
File "/usr/lib/python3.8/http/client.py", line 1183, in _validate_path
raise InvalidURL(f"URL can't contain control characters. {url!r} "
http.client.InvalidURL: URL can't contain control characters. '/api/1.0/~deb [arch=amd64] https' (found at least ' ')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/add-apt-repository", line 136, in <module>
shortcut = shortcut_handler(line)
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 871, in shortcut_handler
ret = factory(shortcut)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 469, in shortcut_handler
return PPAShortcutHandler(shortcut)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 426, in __init__
info = get_ppa_info(self.shortcut)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 392, in get_ppa_info
_get_suggested_ppa_message(user, ppa))
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 349, in _get_suggested_ppa_message
lp_user = get_info_from_lp(LAUNCHPAD_USER_API % user)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 104, in get_info_from_lp
return get_info_from_https(lp_url, True)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 96, in get_info_from_https
data = func(lp_url=url, accept_json=accept_json, retry_delays=retry_delays)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 143, in _get_https_content_py3
"Error reading %s (%d tries): %s" % (lp_url, trynum, e.reason),
AttributeError: 'InvalidURL' object has no attribute 'reason'
ProblemType: Crash
DistroRelease: Ubuntu 20.04
Package: software-properties-common 0.98.7
ProcVersionSignature: Ubuntu 5.4.0-21.25-generic 5.4.27
Uname: Linux 5.4.0-21-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.20.11-0ubuntu22
Architecture: amd64
Date: Mon Apr 6 01:38:30 2020
ExecutablePath: /usr/bin/add-apt-repository
InstallationDate: Installed on 2020-04-05 (0 days ago)
InstallationMedia: Ubuntu 20.04 LTS "Focal Fossa" - Beta amd64 (20200401)
InterpreterPath: /usr/bin/python3.8
PackageArchitecture: all
ProcCmdline: /usr/bin/python3 /usr/bin/add-apt-repository --remove ppa:deb\ [arch=amd64]\ https://download.docker.com/linux/ubuntu\ focal\ stable
ProcEnviron:
LANGUAGE=en_GB:en
LANG=en_GB.UTF-8
TERM=xterm-256color
PATH=(custom, no user)
SHELL=/bin/bash
Python3Details: /usr/bin/python3.8, Python 3.8.2, python3-minimal, 3.8.2-0ubuntu2
PythonArgs: ['/usr/bin/add-apt-repository', '--remove', 'ppa:deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable']
PythonDetails: N/A
SourcePackage: software-properties
Title: add-apt-repository crashed with AttributeError in _get_https_content_py3(): 'InvalidURL' object has no attribute 'reason'
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/1871006/+subscriptions
More information about the foundations-bugs
mailing list