** Description changed: + [ 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.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2067800 Title: needrestart should avoid restarting runner-provisioner.service To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/needrestart/+bug/2067800/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs