Unnattended upgrades take a long time due to excessive running of "apt-check"
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
unattended-upgrades (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
The unattended upgrade services runs "apt-check" to update the MOTD where a summary of available updates is displayed. It does this after every package that is installed. Unfortunately, apt-check is extremely expensive - it takes about 15 seconds to run.
If you have a computer that is infrequently used, you may have as many as 300 available updates. Unattended upgrade will therefore run apt-check 300 times. This takes 1 hour 15 minutes, during which time no packages are actually installed.
Suppose you turn on your computer once a week to do something like pay some bills. It takes 5 minutes. Then you have to wait 2 hours before you can turn it off. Every time.
ProblemType: Bug
DistroRelease: Ubuntu 22.04
Package: unattended-upgrades 2.8ubuntu1
ProcVersionSign
Uname: Linux 5.15.0-71-generic x86_64
ApportVersion: 2.20.11-0ubuntu82.4
Architecture: amd64
CasperMD5CheckR
CurrentDesktop: Unity:Unity7:ubuntu
Date: Wed May 15 00:17:47 2024
InstallationDate: Installed on 2013-12-22 (3796 days ago)
InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Release amd64 (20131016.1)
PackageArchitec
RebootRequiredPkgs: Error: path contained symlinks.
SourcePackage: unattended-upgrades
UpgradeStatus: Upgraded to jammy on 2023-04-16 (394 days ago)
modified.
APT::Periodic:
APT::Periodic:
APT::Periodic:
mtime.conffile.
For example look at .var.log. apt.history. log.txt
Many packages take less than a second to install. But in between each one is a 15 to 20 second delay. That delay is the time during which apt-check is running.
You can watch this happening by running "watch systemctl status apt-daily-upgrade" and looking at the processes in the cgroup:
``` upgrade. service - Daily apt upgrade and clean activities system/ apt-daily- upgrade. service; static) upgrade. timer slice/apt- daily-upgrade. service apt/apt. systemd. daily install apt/apt. systemd. daily lock_is_held install unattended- upgrade
├ ─181903 /usr/bin/python3 /usr/bin/ unattended- upgrade
├ ─181970 /usr/bin/python3 /usr/bin/ unattended- upgrade
├ ─181978 sh -c "if [ -d /var/lib/ update- notifier ]; then touch /var/lib/ update- notifier/ dpkg-run- stamp; fi; /usr/lib/ update- notifier/ update- motd-updates- available 2>/dev/null || true"
├ ─181980 /bin/sh -e /usr/lib/ update- notifier/ update- motd-updates- available
├ ─181994 /usr/bin/python3 /usr/lib/ update- notifier/ apt-check --human-readable
└ ─182339 /usr/bin/python3 -Es /usr/bin/ lsb_release -c -s
~$ systemctl status apt-daily-upgrade
● apt-daily-
Loaded: loaded (/lib/systemd/
Active: activating (start) since Tue 2024-05-14 23:01:03 BST; 1h 29min ago
TriggeredBy: ● apt-daily-
Docs: man:apt(8)
Main PID: 29655 (apt.systemd.dai)
Tasks: 11 (limit: 9299)
Memory: 1.6G
CPU: 1h 12min 57.651s
CGroup: /system.
├─ 29655 /bin/sh /usr/lib/
├─ 29659 /bin/sh /usr/lib/
├─ 29688 /usr/bin/python3 /usr/bin/
```
Then manually running "time apt-check"
``` update- notifier/ apt-check --human-readable
~$ time /usr/lib/
Expanded Security Maintenance for Applications is not enabled.
269 updates can be applied immediately.
45 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable
33 additional security updates can be applied with ESM Apps. /ubuntu. com/esm
Learn more about enabling ESM Apps service at https:/
real 0m12.916s
user 0m11.012s
sys 0m1.885s
```