[Bug 2015286] Re: update-manager unusable due to TimeoutError in uaclient

Benjamin Drung 2015286 at bugs.launchpad.net
Thu Apr 13 17:39:38 UTC 2023


** Changed in: update-manager (Ubuntu)
   Importance: Undecided => High

** Changed in: update-manager (Ubuntu)
       Status: New => Fix Committed

-- 
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:
  New
Status in update-manager package in Ubuntu:
  Fix Committed

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