** Description changed: Currently resolvconf and systemd-networkd don't ensure DNS has been configured before allowing network-online.target to be reached. This was discussed in https://launchpad.net/bugs/1636912 however it was not a regression since there aren't any users of networkd + DNS early in boot at this time, it was requested that we move this DNS issue to a separate bug. + + + [SRU] + Fix: switch resolvconf.service to run Before=network-pre.target and add Wants=network-pre.target. Add a Before=network-online.target to systemd-networkd-resolvconf-update.service to ensure we update /etc/resolv.conf with DNS config prior to reaching network-online.target. + + Regression potential: Low. networkd is not widely being used outside of + netplan/snappy in xenial. + + + Test Case: + lxc launch ubuntu-daily:xenial x1 + lxc exec x1 /bin/bash + + # make sure you're on systemd-229-4ubuntu13 + apt update && apt install -y systemd + + # enable networkd and netplan + apt install -y nplan + cat <<EOF > /etc/netplan/nplan.yaml + network: + version: 2 + ethernets: + eth0: + dhcp4: true + EOF + sed -i.orig -e 's/^source/# source/' /etc/network/interfaces + + netplan generate + + # make sure cloud-init.service uses networkd + sed -i.orig -e '/After=networking.service/a After=systemd-network-wait-online.service' /lib/systemd/system/cloud-init.service + + reboot + + # check that the order of execution with: + journalctl -o short-precise --unit resolvconf.service --unit network-online.target --unit systemd-networkd-wait-online.service --unit systemd-networkd-resolvconf-update.service + + # the order should be: + 1. resolvconf: systemd[1]: Started Nameserver information manager. + 2. systemd-networkd-wait-online.service: systemd[1]: Starting Wait for Network to be Configured... + 3. systemd-networkd-resolvconf-update.service: systemd[1]: Started Update resolvconf for networkd DNS. + 4. network-online.target: systemd[1]: Reached target Network is Online. + + === BAD OUTPUT === + On a failing system, Reached target Network is Online occurs before (1, 2, or 3) above, like this output: + + Dec 15 19:18:15.233443 x4 systemd[1]: Started Nameserver information manager. + Dec 15 19:18:15.797857 x4 systemd[1]: Starting Wait for Network to be Configured... + Dec 15 19:18:15.799573 x4 systemd-networkd-wait-online[145]: ignoring: lo + Dec 15 19:18:15.804949 x4 systemd-networkd-wait-online[145]: ignoring: lo + Dec 15 19:18:15.805079 x4 systemd-networkd-wait-online[145]: ignoring: lo + Dec 15 19:18:29.100305 x4 systemd[1]: Starting Update resolvconf for networkd DNS... + Dec 15 19:18:29.101870 x4 systemd[1]: Started Wait for Network to be Configured. + Dec 15 19:18:29.102144 x4 systemd[1]: Reached target Network is Online. + Dec 15 19:18:29.212842 x4 systemd[1]: Started Update resolvconf for networkd DNS. + + + === GOOD OUTPUT === + On a passing system, Reached target Network is Online occurs after 1, 2, and 3. + + Dec 15 19:28:42.548545 x4 systemd[1]: Started Nameserver information manager. + Dec 15 19:28:43.144389 x4 systemd[1]: Starting Wait for Network to be Configured... + Dec 15 19:28:43.146155 x4 systemd-networkd-wait-online[145]: ignoring: lo + Dec 15 19:28:56.081487 x4 systemd[1]: Started Wait for Network to be Configured. + Dec 15 19:28:56.100353 x4 systemd[1]: Starting Update resolvconf for networkd DNS... + Dec 15 19:28:56.124005 x4 systemd[1]: Started Update resolvconf for networkd DNS. + Dec 15 19:28:56.124555 x4 systemd[1]: Reached target Network is Online.
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1649931 Title: systemd-networkd needs to ensure DNS is up before network- online.target To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/1649931/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs