** 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
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs