This bug was fixed in the package ubuntu-advantage-tools - 28.1~22.04 --------------- ubuntu-advantage-tools (28.1~22.04) jammy; urgency=medium
* Backport new upstream release: (LP: #2017949) to jammy ubuntu-advantage-tools (28.1) mantic; urgency=medium * New upstream release 28.1 (LP: #2017949) - fips: ensure shim-signed is updated to the version in the fips repo if necessary - status: fix bug where an existing status cache could influence the simulated status output ubuntu-advantage-tools (28) mantic; urgency=medium * d/ubuntu-advantage-tools.postinst: - more specific regex for ua_config warning * d/source/lintian-overrides - adjust missing-build-dependency-for-dh-addon systemd override to work for the different but related error message on jammy onwards * New upstream release 28 (LP: #2017949) - api: + new endpoint: u.pro.status.is_attached.v1 + new endpoint: u.pro.status.enabled_services.v1 - apport: collect default log files if present for bug reports - apt messaging: add bionic-specific urls - auto-attach: + check for new Azure UBUNTU_PRO license on-boot of non-pro instances + exit 4 if attach succeeds but service enablement fails - cli: + avoid unnecessary network calls during autocomplete (GH: #2556) + warn users to not rely on human-readable output in scripts - config: no longer load uaclient.conf from current working directory - fix: + add support for --no-related flag + separate target USN from related USNs - general: + logs to user cache directory when run as non-root + fix bug where non-root commands failed with file permission error accessing /tmp/ubuntu-advantage (GH: #2567) + use system environment vars by default in sub processes (GH: #2527) + fall back to /usr/lib/os-release for release info + start logging to default log file until config is loaded + remove small timeout from contract checking request + avoid crashes when processing unicode text (LP: #2019729) - livepatch: + use uname.machine for kernel arch when checking support (GH: #2517) + display tailored warning messages for granular support statuses - realtime-kernel: add support for intel-iotg variant - reboot-required: new criteria for "yes-kernel-livepatches-applied" livepatch status must be either "applied" or "nothing-to-apply" and livepatch support status must say "supported" - security-status: + always show available/installed counts for esm packages + include hint to run apt-get update for up-to-date info (GH: #2443) + improve visibility of installed and available updates (GH: #2442) + change package info message hint to recommend apt-cache show + avoids unnecessary network calls (LP: #2015286, GH: #2536) - systemd: update service unit for reboot_cmds to not run if not attached - status: + add hint for pro status --all + better message if no services are available (LP: #1994923) - timer: only run timer when attached -- Grant Orndorff <grant.orndo...@canonical.com> Mon, 26 Jun 2023 20:49:48 -0400 ** Changed in: ubuntu-advantage-tools (Ubuntu Kinetic) Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of नेपाली भाषा समायोजकहरुको समूह, which is subscribed to Xenial. Matching subscriptions: Ubuntu 16.04 Bugs https://bugs.launchpad.net/bugs/2015286 Title: update-manager unusable due to TimeoutError in uaclient Status in ubuntu-advantage-tools package in Ubuntu: Fix Released Status in update-manager package in Ubuntu: Fix Released Status in ubuntu-advantage-tools source package in Xenial: Fix Released Status in ubuntu-advantage-tools source package in Bionic: Fix Released Status in ubuntu-advantage-tools source package in Focal: Fix Released Status in ubuntu-advantage-tools source package in Jammy: Fix Released Status in ubuntu-advantage-tools source package in Kinetic: Fix Released Status in ubuntu-advantage-tools source package in Lunar: Fix Released Bug description: [ Impact ] `pro api u.pro.packages.updates.v1` was making a network request to contracts.canonical.com to check for an updated list of available services. This could occasionally timeout or fail, causing issues for any program relying on it. The network request itself is unnecessary for the functionality of that api call, so the fix is to not make the network request anymore. [ Test Plan ] Recreate the bug: In a container ``` truncate -s 0 /var/log/ubuntu-advantage.log pro api u.pro.packages.updates.v1 cat /var/log/ubuntu-advantage.log # See logs about network requests ``` To see the fix, install the new version (currently in staging PPA, but for SRU verification it will be in -proposed) and try again ``` add-apt-repository ppa:ua-client/staging apt install ubuntu-advantage-tools truncate -s 0 /var/log/ubuntu-advantage.log pro api u.pro.packages.updates.v1 cat /var/log/ubuntu-advantage.log # No logs about network requests ``` [ Where problems could occur ] This involves a refactor to the implementation of this API function. If there was an error, it could bubble up to any callers of the function. [ Original 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 _______________________________________________ Mailing list: https://launchpad.net/~group.of.nepali.translators Post to : group.of.nepali.translators@lists.launchpad.net Unsubscribe : https://launchpad.net/~group.of.nepali.translators More help : https://help.launchpad.net/ListHelp