Interesting, thanks for the report. The network init path is different
on 16 (the old ifup /etc/network/interfaces style) vs 18 (udev rules
that create a dynamic systemd-networkd configuration).
Overall, how we bring up the control net for different linux
distro/versions is always a bit complicated. Few (or no!) network
managers support what we need, which is a
dhcp-on-all-ethernet-ifaces-with-carrier-until-one-recvs-address search,
so that we can dynamically find the control net device.
We don't do any renaming via udev. On 18, you can see our rules in
/etc/udev/rules.d/99-emulab-networkd.rules . All they do is add a
script that should be run
(/usr/local/etc/emulab/emulab-networkd-udev-helper.sh) that tells
systemd-networkd about a new interface; there are comments in that file
to explain more what happens (e.g., how we find the correct interface).
I could certainly believe a udev race in 18; but because this happens on
both 16 and 18, it's not so clear. We have seen more recently that
onboard ipmi devices can be quite confusing to this search, so newest
versions of our 18 image have that code. If you don't have the latest
version, can you please do something like (`/usr/testbed/sbin/wap
/usr/testbed/sbin/image_import -gr emulab-ops/UBUNTU18-64-STD`), then
try again and see if the problem remains.
I'd be happy to poke at these nodes in an expt on Monday if you can get
me both remote ssh and serial console access. Or if that's not
possible, maybe send me logs: tarball up /var/emulab, and the output of
`journalctl -b0`, right after boot.
> Thanks in advance!
> -Jason Boles
David