** Merge proposal linked: https://code.launchpad.net/~chad.smith/ubuntu/+source/update-notifier/+git/update-notifier/+merge/401826
** Merge proposal linked: https://code.launchpad.net/~chad.smith/ubuntu/+source/update-notifier/+git/update-notifier/+merge/401662 ** Merge proposal linked: https://code.launchpad.net/~lamoura/ubuntu/+source/update-notifier/+git/update-notifier/+merge/401657 ** Merge proposal linked: https://code.launchpad.net/~lamoura/ubuntu/+source/update-notifier/+git/update-notifier/+merge/401653 ** Merge proposal linked: https://code.launchpad.net/~lamoura/ubuntu/+source/update-notifier/+git/update-notifier/+merge/401473 ** Changed in: update-notifier (Ubuntu Bionic) Status: New => In Progress ** Changed in: update-notifier (Ubuntu Focal) Status: New => In Progress ** Changed in: update-notifier (Ubuntu Hirsute) Status: New => In Progress ** Changed in: update-notifier (Ubuntu Impish) Status: New => In Progress ** Changed in: update-notifier (Ubuntu Bionic) Importance: Undecided => High ** Changed in: update-notifier (Ubuntu Focal) Importance: Undecided => High ** Changed in: update-notifier (Ubuntu Hirsute) Importance: Undecided => High ** Changed in: update-notifier (Ubuntu Impish) Importance: Undecided => High ** Description changed: - I came across a scenario where the output of `/usr/lib/update-notifier - /apt-check --human-readable` is showing some (not all) esm updates as - being installable when esm itself is disabled: + [Impact] + when users are getting the message update-notifier message through apt-check they may find inconsistent behavior regarding ESM products. This is misleading since we will say to the users that they don't have ESM Infra, but they do have ESM infra packages that can be installed. This is poor marketing of our products + + [Test case] + + To reproduce the issue, you can: + + 1. Launch the following old version of a xenial container: + lxc launch ubuntu:f4c4c60a6b752a381288ae72a1689a9da00f8e03b732c8d1b8a8fcd1a8890800 dev-x + + 2. Run apt update and install the updated version of update-notifier-common + 3. Add the ubuntu-advantage-tools ppa: + https://code.launchpad.net/~ua-client/+archive/ubuntu/daily + 4. Install ubuntu-advantage-tools + 5. Install the latest version of uaclient from the stable ppa: + https://launchpad.net/~ua-client/+archive/ubuntu/stable/ + 6. Comment out all mentions of xenial-security in /etc/apt/source.list + 7. Run apt update + 8. Run /usr/lib/update-notifier/apt-check --human-readable + 9. See a message like this: + + UA Infra: Extended Security Maintenance (ESM) is not enabled. + + 256 packages can be updated. + 5 of these updates are fixed through UA Infra: ESM. + 5 of these updates are security updates. + To see these additional updates run: apt list --upgradable + + Enable UA Infra: ESM to receive 5 additional security updates. + See https://ubuntu.com/security/esm or run: sudo ua status + + + To verify that the error is fixed: + + 1.Perform all the stages above until step 8 + 2 Install the new update-notifier from this ppa: + https://launchpad.net/~lamoura/+archive/ubuntu/update-notifier-test-ppa + 3. Run /usr/lib/update-notifier/apt-check --human-readable + 4. See a message like this: + + 256 updates can be installed immediately. + 5 of these updates are security updates. + To see these additional updates run: apt list --upgradable + + 5. We are now only showing ESM infra specific message if the distro is + ESM. To enforce that behavior, make the `is_esm_distro` function in + `/usr/lub/update-notifier/apt-check` return True, then you will see this + message: + + UA Infra: Extended Security Maintenance (ESM) is not enabled. + + 256 updates can be installed immediately. + 5 of these updates are security updates. + To see these additional updates run: apt list --upgradable + + 5 additional security updates can be applied with UA Infra: ESM + Learn more about enabling UA Infra: ESM service at https://ubuntu.com/esm + + That is now correct. + + [Where problems could occur] + + The changes in this package should only be seen when MOTD is getting a + new message. If that script fails for some reason, it seems that MOTD + will only not present the message, which is doesn't seem to be a system + critical issue. Additionally, we would potentially have tracebacks in + the update-notifier logs. Finally, if the logic is also incorrect, we + would be displying incorrect ESM messages to the user. But since we are + doing this now, as this bug shows, I don't think this is critical as + well. + + [Discussion] + + With ESM Apps going to production soon, we have decided to update the + messages delivered by update-notifier apt-check to address the package + count of ESM Apps and the possibility of installing more upgrades if the + user has ESM Apps disabled. + + We are also updating other parts of the messaging as well. First, we only display ESM Infra status + on ESM distros. However, we will keep showing the ESM Infra package count on all of them. + + For ESM Apps, we are only performing the alerts (For example, that you + might have x packages updates if ESM Apps is installed) if the user is + on a LTS distro. + + Since we going to perform that change, we decided to also address this + bit in the SRU, since it could harm the message we are delivering + + [Original Report] + I came across a scenario where the output of `/usr/lib/update-notifier/apt-check --human-readable` is showing some (not all) esm updates as being installable when esm itself is disabled: ubuntu@trusty-desktop:~$ sudo /usr/lib/update-notifier/apt-check --human-readable UA Infrastructure Extended Security Maintenance (ESM) is not enabled. 456 updates can be installed immediately. 10 of these updates are provided through UA Infrastructure ESM. 378 of these updates are security updates. To see these additional updates run: apt list --upgradable Enable UA Infrastructure ESM to receive 127 additional security updates. See https://ubuntu.com/advantage or run: sudo ua status - If you look carefully, you will see that it's contradicting itself by saying esm is enabled and disabled at the same time: - 10 ESM updates can be installed immediately - ESM is disabled, and if you enable ESM you will get 127 additional updates I believe this comes from apt_check.py:253: - # now check for security updates that are masked by a - # canidate version from another repo (-proposed or -updates) - for ver in pkg.version_list: - if (inst_ver and apt_pkg.version_compare(ver.ver_str, inst_ver.ver_str) <= 0): - #print("skipping '%s' " % ver.VerStr) - continue - if isESMUpgrade(ver): - esm_updates += 1 - if isSecurityUpgrade(ver): - security_updates += 1 - break + # now check for security updates that are masked by a + # canidate version from another repo (-proposed or -updates) + for ver in pkg.version_list: + if (inst_ver and apt_pkg.version_compare(ver.ver_str, inst_ver.ver_str) <= 0): + #print("skipping '%s' " % ver.VerStr) + continue + if isESMUpgrade(ver): + esm_updates += 1 + if isSecurityUpgrade(ver): + security_updates += 1 + break I believe that is ignoring the fact that ESM is disabled. I added a pdb to check which package it was considering as an esm update, and the first response was dbus, which is in this peculiar state in the archive: ubuntu@trusty-desktop:~$ apt-cache policy dbus dbus: - Installed: 1.6.18-0ubuntu4.3 - Candidate: 1.6.18-0ubuntu4.5 - Version table: - 1.6.18-0ubuntu4.5+esm1 0 - -32768 https://esm.ubuntu.com/ubuntu/ trusty-infra-security/main amd64 Packages - 1.6.18-0ubuntu4.5 0 - 500 http://br.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages - 1.6.18-0ubuntu4.4 0 - 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages - *** 1.6.18-0ubuntu4.3 0 - 100 /var/lib/dpkg/status - 1.6.18-0ubuntu4 0 - 500 http://br.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages + Installed: 1.6.18-0ubuntu4.3 + Candidate: 1.6.18-0ubuntu4.5 + Version table: + 1.6.18-0ubuntu4.5+esm1 0 + -32768 https://esm.ubuntu.com/ubuntu/ trusty-infra-security/main amd64 Packages + 1.6.18-0ubuntu4.5 0 + 500 http://br.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages + 1.6.18-0ubuntu4.4 0 + 500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages + *** 1.6.18-0ubuntu4.3 0 + 100 /var/lib/dpkg/status + 1.6.18-0ubuntu4 0 + 500 http://br.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages Maybe we just need to guard that isESMUpgrade(ver) call with "if have_esm and isESMUpgrade(ver)"? The other place in the code a bit up from the above which also increments esm_updates isn't run in this scenario, so the 10 packages must come from the check I highlighted above. - Other info: update-notifier 0.154.1ubuntu8 from trusty-updates ubuntu-advantage-tools 19.6~ubuntu14.04.4 from trusty-updates ua is attached, but esm disabled: ubuntu@trusty-desktop:~$ ua status SERVICE ENTITLED STATUS DESCRIPTION cc-eal yes n/a Common Criteria EAL2 Provisioning Packages cis-audit no — Center for Internet Security Audit Tools esm-infra yes disabled UA Infra: Extended Security Maintenance fips yes n/a NIST-certified FIPS modules fips-updates yes n/a Uncertified security updates to FIPS modules livepatch yes disabled Canonical Livepatch service Enable services with: ua enable <service> - Account: andreas.hasen...@canonical.com + Account: andreas.hasen...@canonical.com Subscription: andreas.hasen...@canonical.com -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1883315 Title: Showing esm update as installable when esm is disabled To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/update-notifier/+bug/1883315/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs