Activity log for bug #2067800

Date Who What changed Old value New value Message
2024-06-01 14:21:04 Simon Déziel bug added bug
2024-06-03 12:18:49 Simon Chopin nominated for series Ubuntu Oracular
2024-06-03 12:18:49 Simon Chopin bug task added needrestart (Ubuntu Oracular)
2024-06-03 12:18:49 Simon Chopin nominated for series Ubuntu Noble
2024-06-03 12:18:49 Simon Chopin bug task added needrestart (Ubuntu Noble)
2024-06-03 12:19:02 Simon Chopin tags foundations-todo
2024-06-14 12:13:56 Simon Chopin needrestart (Ubuntu Oracular): status New Fix Committed
2024-06-14 17:10:22 Simon Déziel description On GitHub action runners, if there is an update that causes needrestart to restart the runner-provisioner.service, the action job will immediately fail. ``` Restarting services... /etc/needrestart/restart.d/systemd-manager systemctl restart packagekit.service php8.3-fpm.service runner-provisioner.service systemd-journald.service systemd-networkd.service systemd-resolved.service systemd-udevd.service udisks2.service walinuxagent.service Terminated ``` While the above shows multiple services being restarted, "artificially" restarting just runner-provisioner.service has shown to cause an immediate failure (as seen in https://github.com/canonical/lxd-ci/actions/runs/9323021640/job/25665299316?pr=178) ``` + sudo systemctl restart runner-provisioner.service Error: Process completed with exit code 143. ``` If needrestart has a way to exclude services from being restarted, runner-provisioner.service should be added to the list. [ Impact ] On GitHub action runners, if there is an update that causes needrestart to restart the runner-provisioner.service, the action job will immediately fail. While GitHub seem to have tweaked their image to workaround the issue (see https://bugs.launchpad.net/ubuntu/+source/needrestart/+bug/2067800/comments/2) users of self-hosted runners might have images lacking the workaround. The fix is to add `runner-provisioner.service` to the override/exclusion list to prevent automatic restart of that service. [ Test Plan ] Since GitHub patched the main configuration file to do the exclusion, this needs to be undone before doing the verification. The verification itself should ideally be done on a GitHub runner 1) Undo GitHub config workaround: sudo sed -i '/^\s*qr(^runner-provisioner)\s*=>\s*0,$/d' /etc/needrestart/needrestart.conf 2) Install fixed package from proposed echo "deb http://archive.ubuntu.com/ubuntu noble-proposed main" | sudo tee /etc/apt/sources.list sudo apt update sudo apt install -y -t noble-proposed needrestart 3) Reinstall something that would cause the runner-provisioner.service unit to be restarted: sudo apt reinstall libc6 sleep 5 echo Success Those instructions are available in this workflow: https://github.com/simondeziel/needrestart-ghaction/blob/main/.github/workflows/blank.yml [ Where problems could occur ] It is possible that other environment (non GitHub runners) have a systemd unit by the same name and excluding the service from the restart-able list would prevent their service from being restarted automatically. The packages in the Ubuntu archive don't contain any systemd unit by that name so this risk is only for "external" packages. [ Original bug description ] On GitHub action runners, if there is an update that causes needrestart to restart the runner-provisioner.service, the action job will immediately fail. ``` Restarting services... /etc/needrestart/restart.d/systemd-manager systemctl restart packagekit.service php8.3-fpm.service runner-provisioner.service systemd-journald.service systemd-networkd.service systemd-resolved.service systemd-udevd.service udisks2.service walinuxagent.service Terminated ``` While the above shows multiple services being restarted, "artificially" restarting just runner-provisioner.service has shown to cause an immediate failure (as seen in https://github.com/canonical/lxd-ci/actions/runs/9323021640/job/25665299316?pr=178) ``` + sudo systemctl restart runner-provisioner.service Error: Process completed with exit code 143. ``` If needrestart has a way to exclude services from being restarted, runner-provisioner.service should be added to the list.
2024-06-14 17:23:36 Launchpad Janitor needrestart (Ubuntu Oracular): status Fix Committed Fix Released
2024-07-04 07:48:04 Simon Chopin needrestart (Ubuntu Noble): status New In Progress
2024-07-04 07:48:16 Simon Chopin needrestart (Ubuntu Noble): status In Progress Triaged
2024-07-04 07:48:21 Simon Chopin needrestart (Ubuntu Noble): importance Undecided Low