[Bug 2015286] Re: update-manager unusable due to TimeoutError in uaclient
Renan Rodrigo
2015286 at bugs.launchpad.net
Thu May 18 13:45:06 UTC 2023
On the Pro Client side, we are about to land functionality that will
help us remove this status call from the updates endpoint, making sure
we aren't making any network request when the updates functionality is
called. There is https://github.com/canonical/ubuntu-pro-
client/issues/2536 about that.
** Bug watch added: github.com/canonical/ubuntu-pro-client/issues #2536
https://github.com/canonical/ubuntu-pro-client/issues/2536
** Changed in: ubuntu-advantage-tools (Ubuntu)
Status: New => Triaged
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to update-manager in Ubuntu.
https://bugs.launchpad.net/bugs/2015286
Title:
update-manager unusable due to TimeoutError in uaclient
Status in ubuntu-advantage-tools package in Ubuntu:
Triaged
Status in update-manager package in Ubuntu:
Fix Released
Bug description:
On a fairly standard installation of lunar (ie no Ubuntu Pro linked
etc), the update-manager can become a non-functional window when
uaclient isn't behaving. This manifests itself in a greyed-out
'checking for updates' window which doesn't respond to any clicks and
can only be closed by ending the process in the system-monitor.
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/UpdateManager/backend/InstallBackendAptdaemon.py", line 529, in _on_finished
self._action_done(
File "/usr/lib/python3/dist-packages/UpdateManager/backend/__init__.py", line 414, in _action_done
self.window_main.start_available()
File "/usr/lib/python3/dist-packages/UpdateManager/UpdateManager.py", line 244, in start_available
self.refresh_cache()
File "/usr/lib/python3/dist-packages/UpdateManager/UpdateManager.py", line 456, in refresh_cache
self._get_ua_security_status()
File "/usr/lib/python3/dist-packages/UpdateManager/UpdateManager.py", line 280, in _get_ua_security_status
update_result = updates()
^^^^^^^^^
File "/usr/lib/python3/dist-packages/uaclient/api/u/pro/packages/updates/v1.py", line 84, in updates
return _updates(UAConfig())
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/uaclient/api/u/pro/packages/updates/v1.py", line 88, in _updates
ua_info = get_ua_info(cfg)
^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/uaclient/security_status.py", line 195, in get_ua_info
status_dict = status(cfg=cfg, show_all=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/uaclient/status.py", line 380, in status
response = _unattached_status(cfg)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/uaclient/status.py", line 246, in _unattached_status
resources = get_available_resources(cfg)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/uaclient/contract.py", line 624, in get_available_resources
resources = client.request_resources()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/uaclient/contract.py", line 71, in request_resources
resource_response, headers = self.request_url(
^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/uaclient/serviceclient.py", line 73, in request_url
response, headers = util.readurl(
^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/uaclient/util.py", line 322, in readurl
resp = request.urlopen(req, timeout=timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/urllib/request.py", line 216, in urlopen
return opener.open(url, data, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/urllib/request.py", line 519, in open
response = self._open(req, data)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/urllib/request.py", line 536, in _open
result = self._call_chain(self.handle_open, protocol, protocol +
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/urllib/request.py", line 496, in _call_chain
result = func(*args)
^^^^^^^^^^^
File "/usr/lib/python3.11/urllib/request.py", line 1391, in https_open
return self.do_open(http.client.HTTPSConnection, req,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/urllib/request.py", line 1352, in do_open
r = h.getresponse()
^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/http/client.py", line 1374, in getresponse
response.begin()
File "/usr/lib/python3.11/http/client.py", line 318, in begin
version, status, reason = self._read_status()
^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/http/client.py", line 279, in _read_status
line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/socket.py", line 706, in readinto
return self._sock.recv_into(b)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/ssl.py", line 1278, in recv_into
return self.read(nbytes, buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/ssl.py", line 1134, in read
return self._sslobj.read(len, buffer)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out
In my opinion any misbehaving of the Ubuntu Pro integration in update-
manager (in this specific case probably a 'temporary' server issue)
shouldn't cause update-manager to become dysfunctional, especially to
those not subscribed to Ubuntu Pro.
I have recently seen:
- update-manager unable to install updates for over a month ( LP: #2008280 )
- this issue,
- if you turn wi-fi off and open update-manager, then after clicking ok the update-manager window becomes unresponsive ( LP: #2015113 )
- and undoubtedly there are others to come as this is all without uaclient needing to do anything (ie I have no subscription and lunar is not yet released)
Please consider how you might make the integration of Ubuntu Pro into
update-manager more robust, so that any issues in uaclient don't stop
update-manager from functioning correctly. (ie presumably using a
try/except around the uaclient call is not unreasonable - you might
loose track of any errors that are occurring, but keeping update-
manager working (aka allowing people to install their system updates)
is a much higher priority)
Thanks
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-advantage-tools/+bug/2015286/+subscriptions
More information about the foundations-bugs
mailing list