Config variable $nrconf{restart} is no longer accurate: it always restarts

Bug #2068543 reported by halfgaar
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
needrestart (Ubuntu)
Status tracked in Oracular
Noble
New
Undecided
Unassigned
Oracular
Fix Released
Undecided
Unassigned

Bug Description

[Impact]
The normal configuration knob to change the behaviour of needrestart wrt restarting services vs asking the user vs just listing them doesn't work anymore
on Noble due to the "Ubuntu mode" changes made during that cycle.

[Test plan]

echo '$nrconf{restart} = "l";' > /etc/needrestart/conf.d/listmode.conf
apt reinstall libc6
# The previous command should not have restarted any service.

[ Where problems could occur ]

If the patch is buggy, automatic restart could be disabled for all users. However, that use case is checked by the autopkgtests.

[Original report]
On Ubuntu 24.04:

The conf /etc/needrestart/needrestart.conf contains:

# Restart mode: (l)ist only, (i)nteractive or (a)utomatically.
#
# ATTENTION: If needrestart is configured to run in interactive mode but is run
# non-interactive (i.e. unattended-upgrades) it will fallback to list only mode.
#
#$nrconf{restart} = 'i';

Whether that variable is left at default (commented out) or defined with 'l' or 'i', services are still restarted.

This config variable conflicts with the new behavior in [1].

To reproduce: set "$nrconf{restart} = 'l'" run 'apt reinstall libssl3t64' on servers with Nginx, Redis, etc.

Not sure if this setting should be respected, changed, or removed.

[1] https://discourse.ubuntu.com/t/needrestart-changes-in-ubuntu-24-04-service-restarts/44671

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in needrestart (Ubuntu):
status: New → Confirmed
Revision history for this message
Nick Tait (nick.t) wrote :

I have noticed the same thing on 3 servers after they were upgraded to 24.04.

I also tested the following:

sudo NEEDRESTART_MODE=l apt full-upgrade --autoremove

i.e. specifying the restart mode in an environment variable (which I found by Googling), but this also had no effect.

I could be wrong about this, but it seems to me as though when needrestart is run manually, it DOES observe the settings in /etc/needrestart/needrestart.conf, but when it is run automatically by apt, it DOESN'T observe the settings and always restarts services. Could apt be passing in a NEEDRESTART_MODE=a environment variable to cause this behaviour?

Simon Chopin (schopin)
Changed in needrestart (Ubuntu Oracular):
status: Confirmed → Fix Committed
status: Fix Committed → Confirmed
status: Confirmed → Fix Committed
Simon Chopin (schopin)
description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package needrestart - 3.6-8ubuntu3

---------------
needrestart (3.6-8ubuntu3) oracular; urgency=medium

  * d/p/ubuntu-mode.patch: Don't touch /run/reboot-required on kernel updates
    (LP: #2065863)
  * Ubuntu mode: disable it if restart mode has been explicitly set
    (LP: #2068543)
  * Add some inline documentation for the Ubuntu mode (LP: #2068573)
  * Don't restart the google-guest-agent service (LP: #2063442)
  * Don't restart the GH runner provisioner (LP: #2067800)
  * tests: guard against looping when failing.

 -- Simon Chopin <email address hidden> Fri, 14 Jun 2024 11:57:11 +0200

Changed in needrestart (Ubuntu Oracular):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.