network-manager SRU flags system for restart required but also restarted the service

Bug #2040292 reported by Steve Langasek
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
network-manager (Ubuntu)
Fix Released
Low
Unassigned
Mantic
New
Undecided
Unassigned

Bug Description

[ Impact ]

 * During an upgrade (or installation) of the network-manager package, its debian/network-manager.postinst maintainer script restarts NetworkManager.service and also requests users to reboot their system.
 * It requests a reboot, by calling into /usr/share/update-notifier/notify-reboot-required and listing "network-manager" in /var/run/reboot-required.pkgs
 * Restarting the systemd service AND asking for a reboot isn't needed. Just the service restart is enough and we shouldn't ask for a reboot as that is bad UX

[ Test Plan ]

 * Reboot your system (or clear /var/run/reboot-required.pkgs)
   echo "" | sudo tee /var/run/reboot-required.pkgs
 * Install network-manager from mantic-proposed
   apt install [--reinstall] -t mantic-proposed network-manager
 * Observe that the NetworkManager.service was restarted by this operation: "active (running) [...] 2 min ago"
   systemctl status Networkmanager.service
● NetworkManager.service - Network Manager
     Loaded: loaded (/lib/systemd/system/NetworkManager.service; enabled; preset: enabled)
     Active: active (running) since Wed 2023-10-25 15:21:27 CEST; 2min ago
       Docs: man:NetworkManager(8)
   Main PID: 3880250 (NetworkManager)
      Tasks: 4 (limit: 28344)
     Memory: 6.1M
        CPU: 425ms
     CGroup: /system.slice/NetworkManager.service
             └─3880250 /usr/sbin/NetworkManager --no-daemon
 * Observe that network-manager was NOT written to /var/run/reboot-required.pkgs
   cat /var/run/reboot-required.pkgs
 * Observe that no GUI popped up asking you for a reboot because of NetworkManager

[ Where problems could occur ]

 * This change is touching a maintainer script (.postinst)
 * Failures or syntax errors could leave the network-manager package unconfigured
 * It could break installation of the network-manager package

[ Other Info ]

 * This SRU should probably just be staged, using `block-proposed-mantic` and bundled with the next upload.

=== original description ===

After applying the network-manager SRU in mantic, I get a notification that a system restart is required to fully apply updates.

This immediately raised a question, because I KNOW my network connection was restarted when the SRU was installed (I have a VPN that did not auto-reconnect).

And I checked the state of the process - it was definitely restarted and is running from the binary currently on disk.

The network-manager postinst has the following code:

        # request a reboot (NM tears down interfaces on restart
        # which is not the way we want to go)
        [ -x /usr/share/update-notifier/notify-reboot-required ] && \
            /usr/share/update-notifier/notify-reboot-required

But the service restart is also happening. debian/rules currently has:

override_dh_installsystemd:
        dh_installsystemd -pnetwork-manager --no-start NetworkManager-dispatcher.service NetworkManager-wait-online.service nm-priv-helper.service
        dh_installsystemd -pnetwork-manager --no-also NetworkManager.service

No other systemd overrides. Nothing inhibits the restart of the service.

It needs to be one or the other. And if we're doing SRUs of network-manager, then this is bad UX for users applying their daily updates and should be fixed in SRU.

ProblemType: Bug
DistroRelease: Ubuntu 23.10
Package: network-manager 1.44.2-1ubuntu1.1
ProcVersionSignature: Ubuntu 6.5.0-9.9-generic 6.5.3
Uname: Linux 6.5.0-9-generic x86_64
NonfreeKernelModules: zfs
ApportVersion: 2.27.0-0ubuntu5
Architecture: amd64
CasperMD5CheckResult: unknown
CurrentDesktop: ubuntu:GNOME
Date: Tue Oct 24 08:19:38 2023
InstallationDate: Installed on 2019-12-23 (1401 days ago)
InstallationMedia: Ubuntu 19.10 "Eoan Ermine" - Release amd64 (20191017)
RebootRequiredPkgs: Error: path contained symlinks.
SourcePackage: network-manager
UpgradeStatus: Upgraded to mantic on 2023-10-16 (8 days ago)
nmcli-nm:
 RUNNING VERSION STATE STARTUP CONNECTIVITY NETWORKING WIFI-HW WIFI WWAN-HW WWAN
 running 1.44.2 connected started full enabled enabled enabled missing enabled

Revision history for this message
Steve Langasek (vorlon) wrote :
Revision history for this message
Jeremy Bícha (jbicha) wrote :

When I added notify-reboot-required years ago, I believe I also suppressed the automatic restart of NetworkManager. At the time, I figured it was better for users to not temporarily lose network connectivity during the upgrade.

However, the snippet disabling restarting NetworkManager was later dropped.

I agree that it does not make sense to both restart NetworkManager and have NetworkManager request restarting the computer.

I do not believe we have a desktop policy to help us determine when it is better to either restart services or notify that a computer restart is recommended.

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

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

Changed in network-manager (Ubuntu):
status: New → Confirmed
Revision history for this message
Steve Langasek (vorlon) wrote : Re: [Bug 2040292] Re: network-manager SRU flags system for restart required but also restarted the service

On Tue, Oct 24, 2023 at 04:04:25PM -0000, Jeremy Bícha wrote:
> I do not believe we have a desktop policy to help us determine when it
> is better to either restart services or notify that a computer restart
> is recommended.

As a user I would prefer to not have my vpn connection drop during a
network-manager upgrade; or, barring that, to have it re-established after
the service is restarted.

And since that's not currently implemented, as a user it would be less
annoying for me if the service was not restarted.

HOWEVER, the default policy is to always restart services on upgrade, and
this policy exists for a reason. Indeed, Lukas tells me we specifically
need to restart NM on upgrade from lunar to mantic because without a
restart, we can't do the connection migration - so in the most immediately
interesting case a restart is mandatory anyway.

The only system service we make an exception for is dbus because the whole
system loses its mind if dbus goes away.

So I think, given the set of knobs we currently have available for tweaking,
the right answer is to drop the reboot-required bit.

Revision history for this message
Jeremy Bícha (jbicha) wrote :

What are the consequences of delaying NetworkManager's restart until reboot? It is "mandatory" to reboot after the upgrade to 23.10, but we don't force it to happen immediately.

Revision history for this message
Steve Langasek (vorlon) wrote :

On Tue, Oct 24, 2023 at 07:36:16PM -0000, Jeremy Bícha wrote:
> What are the consequences of delaying NetworkManager's restart until
> reboot?

This is not an option on upgrade from <= 23.04 to >= 23.10 because the
postinst needs the new NetworkManager running for the connections migration.

Jeremy Bícha (jbicha)
Changed in network-manager (Ubuntu):
importance: Undecided → Low
status: Confirmed → Triaged
Lukas Märdian (slyon)
description: updated
Lukas Märdian (slyon)
tags: added: block-proposed-mantic
Lukas Märdian (slyon)
tags: removed: block-proposed-mantic
Lukas Märdian (slyon)
tags: added: block-proposed-mantic
tags: removed: block-proposed-mantic
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package network-manager - 1.44.2-1ubuntu2

---------------
network-manager (1.44.2-1ubuntu2) noble; urgency=medium

  [ Lukas Märdian ]
  * network-manager.postinst: Skip unknown connection profiles (LP: #2039503)
  * d/network-manager.postinst: Drop reboot notification (LP: #2040292)

  [ Danilo Egea Gondolfo ]
  * debian/tests/nm_netplan.py
    Start Network Manager via systemd. The .service unit file sets
    ProtectSystem to true and we want to run the Netplan tests with this
    restriction enabled.
  * d/p/netplan/0003-Allow-the-NetworkManager-daemon-to-write-to-lib-netp.patch
    Allow-list /usr/lib/netplan so libnetplan can open files from that
    directory with writing permission. See LP: #2040153
  * debian/tests/control
    Add all the dependencies required by the nm_netplan.py tests.
  * debian/tests/network_test_base.py.
    Increase the waiting time between creating a veth pair and reading their
    MAC addresses. On arm64, the system is taking longer to change the MAC
    after creation, leading to failures due to differences in the expected
    and current MAC addresses. See LP: #2023183

 -- Lukas Märdian <email address hidden> Thu, 26 Oct 2023 11:48:18 +0200

Changed in network-manager (Ubuntu):
status: Triaged → 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.