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)
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): python3/ dist-packages/ UpdateManager/ backend/ InstallBackendA ptdaemon. py", line 529, in _on_finished _action_ done( python3/ dist-packages/ UpdateManager/ backend/ __init_ _.py", line 414, in _action_done window_ main.start_ available( ) python3/ dist-packages/ UpdateManager/ UpdateManager. py", line 244, in start_available refresh_ cache() python3/ dist-packages/ UpdateManager/ UpdateManager. py", line 456, in refresh_cache _get_ua_ security_ status( ) python3/ dist-packages/ UpdateManager/ UpdateManager. py", line 280, in _get_ua_ security_ status
^ ^^^^^^^ ^ python3/ dist-packages/ uaclient/ api/u/pro/ packages/ updates/ v1.py", line 84, in updates UAConfig( ))
^^^ ^^^^^^^ ^^^^^^^ ^^^ python3/ dist-packages/ uaclient/ api/u/pro/ packages/ updates/ v1.py", line 88, in _updates
^^^^^^^ ^^^^^^^ ^^ python3/ dist-packages/ uaclient/ security_ status. py", line 195, in get_ua_info
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^ python3/ dist-packages/ uaclient/ status. py", line 380, in status status( cfg)
^^^^^^ ^^^^^^^ ^^^^^^^ ^^^ python3/ dist-packages/ uaclient/ status. py", line 246, in _unattached_status resources( cfg)
^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^ python3/ dist-packages/ uaclient/ contract. py", line 624, in get_available_ resources request_ resources( )
^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ python3/ dist-packages/ uaclient/ contract. py", line 71, in request_resources response, headers = self.request_url(
^^ ^^^^^^^ ^^^^^^^ ^ python3/ dist-packages/ uaclient/ serviceclient. py", line 73, in request_url
^^^^ ^^^^^^^ ^^ python3/ dist-packages/ uaclient/ util.py" , line 322, in readurl urlopen( req, timeout=timeout)
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^ python3. 11/urllib/ request. py", line 216, in urlopen
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ python3. 11/urllib/ request. py", line 519, in open
^^^^^^ ^^^^^^^ ^^^^^^^ ^ python3. 11/urllib/ request. py", line 536, in _open chain(self. handle_ open, protocol, protocol +
^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^ python3. 11/urllib/ request. py", line 496, in _call_chain
^ ^^^^^^^ ^^^ python3. 11/urllib/ request. py", line 1391, in https_open open(http. client. HTTPSConnection , req,
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^ python3. 11/urllib/ request. py", line 1352, in do_open
^^^^^^ ^^^^^^^ ^^ python3. 11/http/ client. py", line 1374, in getresponse begin() python3. 11/http/ client. py", line 318, in begin
^^^^^ ^^^^^^^ ^^^^^^^ python3. 11/http/ client. py", line 279, in _read_status fp.readline( _MAXLINE + 1), "iso-8859-1")
^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^ python3. 11/socket. py", line 706, in readinto recv_into( b)
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^ python3. 11/ssl. py", line 1278, in recv_into
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^ python3. 11/ssl. py", line 1134, in read read(len, buffer)
^^^ ^^^^^^^ ^^^^^^^ ^^^^^^^ ^^^^^^
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
update_result = updates()
File "/usr/lib/
return _updates(
File "/usr/lib/
ua_info = get_ua_info(cfg)
File "/usr/lib/
status_dict = status(cfg=cfg, show_all=True)
File "/usr/lib/
response = _unattached_
File "/usr/lib/
resources = get_available_
File "/usr/lib/
resources = client.
File "/usr/lib/
resource_
File "/usr/lib/
response, headers = util.readurl(
File "/usr/lib/
resp = request.
File "/usr/lib/
return opener.open(url, data, timeout)
File "/usr/lib/
response = self._open(req, data)
File "/usr/lib/
result = self._call_
File "/usr/lib/
result = func(*args)
File "/usr/lib/
return self.do_
File "/usr/lib/
r = h.getresponse()
File "/usr/lib/
response.
File "/usr/lib/
version, status, reason = self._read_status()
File "/usr/lib/
line = str(self.
File "/usr/lib/
return self._sock.
File "/usr/lib/
return self.read(nbytes, buffer)
File "/usr/lib/
return self._sslobj.
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