** Description changed: [Impact] If a user on xenial or on bionic has an old version of distro-info and then upgraded ubuntu-advantage-tools, they will get periodic tracebacks from our update_messaging systemd unit, and enabling services with ua will always fail. The fix is to specify the required versions of distro-info that ubuntu- advantage-tools needs to function. Backporting this fix is necessary to ensure xenial and bionic users who happen to have an older version of distro-info are able to enable ubuntu-advantage services without first finding this bug, then manually upgrading distro-info. [Test Plan] This should be tested on both xenial and bionic. These test steps assume that the proposed version of ua to release is available in ppa:ua- client/staging - check with the ubuntu-advantage-tools team before proceeding to make sure this is the case. First reproduce the issue. In a xenial container: - ``` sudo apt install distro-info=0.14build1 distro-info-data=0.28 sudo apt install ubuntu-advantage-tools sudo python3 /usr/lib/ubuntu-advantage/ua_update_messaging.py # expect a traceback sudo ua attach YOUR_TOKEN # expect error messages sudo ua detach # expect error messages ``` In a bionic container: - ``` sudo apt install distro-info=0.18 distro-info-data=0.37 sudo apt install ubuntu-advantage-tools sudo python3 /usr/lib/ubuntu-advantage/ua_update_messaging.py # expect a traceback sudo ua attach YOUR_TOKEN # expect error messages sudo ua detach # expect error messages ``` To see the fix in action, on both xenial and bionic: ``` sudo add-apt-repository ppa:ua-client/staging sudo apt-get update sudo apt install ubuntu-advantage-tools sudo python3 /usr/lib/ubuntu-advantage/ua_update_messaging.py # there should be no traceback or error sudo ua attach YOUR_TOKEN # expect success and no error messages sudo ua detach # expect success and no error messages ``` [Where problems could occur] - TODO + In order to require the correct versions for both xenial and bionic and + later releases, the Depends line is somewhat complex. The same line is + required under Build-Depends as well. So if there is a mistake, such as + if the version constraints incorrectly include a version they shouldn't, + then this could cause errors during build as well as during install. [Other Info] - TODO + The complexity in the depends line is because of the following versions + of distro-info. This list includes which release they are one and which + ones will work as our dependency: + + - xenial: 0.14build1 doesn't work + - xenial: 0.14ubuntu0.2 works + - bionic: 0.18 doesn't work + - bionic: 0.18ubuntu0.18.04.1 works + + focal and later have higher version numbers than 0.18 + + So to grab the correct version across all versions, we need to set a + minumum version of 0.18ubuntu0.18.04.1 OR get exactly 0.14ubuntu0.2, but + nothing in between. [Original Description] 27.0~16.04.1 on Xenial. ubuntu-advantage-tools was upgraded, the rest of the machine is painfully behind. Resulted in this: Jun 15 13:34:46 MAAS systemd[1]: Starting Ubuntu Advantage APT and MOTD Messages... Jun 15 13:34:46 MAAS python3[15434]: Traceback (most recent call last): Jun 15 13:34:46 MAAS python3[15434]: File "/usr/lib/ubuntu-advantage/ua_update_messaging.py", line 302, in <module> Jun 15 13:34:46 MAAS python3[15434]: update_apt_and_motd_messages(cfg=cfg) Jun 15 13:34:46 MAAS python3[15434]: File "/usr/lib/ubuntu-advantage/ua_update_messaging.py", line 284, in update_apt_and_motd_messages Jun 15 13:34:46 MAAS python3[15434]: if not util.is_lts(series): Jun 15 13:34:46 MAAS python3[15434]: File "/usr/lib/python3/dist-packages/uaclient/util.py", line 353, in is_lts Jun 15 13:34:46 MAAS python3[15434]: out, _err = subp(["/usr/bin/ubuntu-distro-info", "--supported-esm"]) Jun 15 13:34:46 MAAS python3[15434]: File "/usr/lib/python3/dist-packages/uaclient/util.py", line 608, in subp Jun 15 13:34:46 MAAS python3[15434]: out, err = _subp(args, rcs, capture, timeout, env=env) Jun 15 13:34:46 MAAS python3[15434]: File "/usr/lib/python3/dist-packages/uaclient/util.py", line 565, in _subp Jun 15 13:34:46 MAAS python3[15434]: stderr=err.decode("utf-8"), Jun 15 13:34:46 MAAS python3[15434]: uaclient.util.ProcessExecutionError: Failed running command '/usr/bin/ubuntu-distro-info --supported-esm' [exit(1)]. Message: ubuntu-distro-info: unrecognized option `--supported-esm' Jun 15 13:34:46 MAAS systemd[1]: ua-messaging.service: Main process exited, code=exited, status=1/FAILURE Jun 15 13:34:46 MAAS systemd[1]: Failed to start Ubuntu Advantage APT and MOTD Messages. Jun 15 13:34:46 MAAS systemd[1]: ua-messaging.service: Unit entered failed state. Jun 15 13:34:46 MAAS systemd[1]: ua-messaging.service: Failed with result 'exit-code'. Installed distro-info was 0.14build1 ; upgrading to current fixed it.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1932028 Title: missing version dependency on distro-info To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/ubuntu-advantage-tools/+bug/1932028/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs