[Bug 2036358] Re: systemd wait-online now times out after jammy and lunar upgrade
Nick Rosbrook
2036358 at bugs.launchpad.net
Fri Sep 22 15:41:28 UTC 2023
I have verified the fix using systemd 252.5-2ubuntu3.2 in lunar-
proposed:
Creating a fresh container:
nr at six:~$ lxc launch ubuntu-daily:lunar lunar
Creating lunar
Starting lunar
nr at six:~$ lxc exec lunar bash
In the container, after enabling -proposed:
root at lunar:~# apt update && apt install -y systemd
[...]
root at lunar:~# apt-cache policy systemd
systemd:
Installed: 252.5-2ubuntu3.2
Candidate: 252.5-2ubuntu3.2
Version table:
*** 252.5-2ubuntu3.2 500
500 http://archive.ubuntu.com/ubuntu lunar-proposed/main amd64 Packages
100 /var/lib/dpkg/status
252.5-2ubuntu3.1 500
500 http://archive.ubuntu.com/ubuntu lunar-updates/main amd64 Packages
252.5-2ubuntu3 500
500 http://archive.ubuntu.com/ubuntu lunar/main amd64 Packages
root at lunar:~# vi /etc/netplan/50-cloud-init.yaml
root at lunar:~# cat /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
ethernets:
eth0:
dhcp4: true
optional: true
root at lunar:~# netplan generate
root at lunar:~# netplan apply
Cannot call openvswitch: ovsdb-server.service is not running.
root at lunar:~# time SYSTEMD_LOG_LEVEL=debug /usr/lib/systemd/systemd-networkd-wait-online --timeout=5
Found link 13
Found link 1
eth0: link is ignored
lo: link is ignored
real 0m0.003s
user 0m0.003s
sys 0m0.000s
root at lunar:~# echo $?
0
I also ran the test from bug 1982218 again to ensure that does not
regress:
On the host, I have clean-lunar-amd64, and detached it's default network
interface:
nr at six:~$ virsh detach-interface clean-lunar-amd64 network
Interface detached successfully
Then, in the VM, configure systemd-networkd to use DHCP on all en*
interfaces:
root at clean-lunar-amd64:/home/nr# apt-cache policy systemd
systemd:
Installed: 252.5-2ubuntu3.2
Candidate: 252.5-2ubuntu3.2
Version table:
*** 252.5-2ubuntu3.2 500
500 http://archive.ubuntu.com/ubuntu lunar-proposed/main amd64 Packages
100 /var/lib/dpkg/status
252.5-2ubuntu3.1 500
500 http://archive.ubuntu.com/ubuntu lunar-updates/main amd64 Packages
252.5-2ubuntu3 500
500 http://archive.ubuntu.com/ubuntu lunar/main amd64 Packages
root at clean-lunar-amd64:/home/nr# cat > /etc/systemd/network/10-dhcp.network << EOF
[Match]
Name=en*
[Network]
DHCP=yes
EOF
root at clean-lunar-amd64:/home/nr# systemctl restart systemd-networkd
Now, back in the host, I attach a network interface without DHCP:
nr at six:~$ virsh attach-interface clean-lunar-amd64 network no-dhcp
Interface attached successfully
In the VM, check that wait-online times out since the interface does not
get configured:
root at clean-lunar-amd64:/home/nr# /lib/systemd/systemd-networkd-wait-online --any --timeout=5
Timeout occurred while waiting for network connectivity.
root at clean-lunar-amd64:/home/nr# networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
3 ens3 ether degraded configuring
2 links listed.
>From the host, attach another interface that will get DHCP:
nr at six:~$ virsh attach-interface clean-lunar-amd64 network default
Interface attached successfully
And finally, in the VM, run wait-online again and see that it will exit
successfully when the second interface is configured:
root at clean-lunar-amd64:/home/nr# /lib/systemd/systemd-networkd-wait-online --any --timeout=0
eth0: Failed to update link state, ignoring: No such file or directory
root at clean-lunar-amd64:/home/nr# networkctl
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
3 ens3 ether degraded configuring
4 ens9 ether routable configured
3 links listed.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/2036358
Title:
systemd wait-online now times out after jammy and lunar upgrade
Status in systemd package in Ubuntu:
Invalid
Status in systemd source package in Jammy:
Fix Committed
Status in systemd source package in Lunar:
Fix Committed
Bug description:
[NOTE]
If you are running a desktop system and you see this issue, you should
run:
$ systemctl disable --now systemd-networkd.service
This will disable systemd-networkd and associated units, including
systemd-networkd-wait-online.service. NetworkManager and systemd-
networkd should not be running at the same time. On desktop,
NetworkManager is the default network stack.
[Impact]
When all interfaces are "not required for online", e.g. when they are
marked "optional: true" in netplan, systemd-networkd-wait-online will
timeout. Or, in other words, systemd-networkd-wait-online will timeout
even though all interfaces are ignored, hence none of them will ever
be marked as "ready." Depending on what units depend on network-
online.target, this can delay boot by 120 seconds (the default timeout
for systemd-networkd-wait-online).
[Test Plan]
1. Create a new LXD container. These instructions assume jammy is the
release, but the same can be done for lunar.
$ lxc launch ubuntu-daily:jammy jammy
$ lxc exec jammy bash
2. Once in the container, modify the default /etc/netplan/10-lxc.yaml
so that eth0 is configured with "optional: true":
$ vi /etc/netplan/10-lxc.yaml # Use whatever editor you like
$ cat /etc/netplan/10-lxc.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: true
dhcp-identifier: mac
optional: true
3. Re-generate and apply the netplan configuration.
$ netplan generate
$ netplan apply
4. Manually run systemd-networkd-wait-online, and observe that all
links are ignored, and the command times out:
$ SYSTEMD_LOG_LEVEL=debug /lib/systemd/systemd-networkd-wait-online --timeout=10
Found link lo(1)
Found link eth0(19)
lo: link is ignored
eth0: link is ignored
Timeout occurred while waiting for network connectivity.
[Where problems could occur]
This patch partially re-instates a patch remove in bug 1982218.
However, instead of exiting if all links are unmanaged, we exit if all
links are ignored in manager_configured(). If the patch was wrong, we
may re-introduce bug 1982218, so as part of this SRU verification,
that bug should be tested too. Any other regressions would also be
related to systemd-networkd-wait-online behavior.
[Original Description]
On Ubuntu 22.04 desktop system using network-manager and upgrading to
systemd 249.11-0ubuntu3.10, wait-online now times out which prevents
logins (GDM, ssh, console) until it does time out. This seems to be
introduced by the change for
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1982218.
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1982218/comments/21
also mentioned the problem on Lunar.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/2036358/+subscriptions
More information about the foundations-bugs
mailing list