Added to the kernel command-line: "udev.log-priority=7 udev.rdlog-priority=7"
/var/log/dmesg was flooded and lost some of the early messages since I didn't increase the log-buffer size but it did catch the systemd-udevd logging especially related to the 'net' subsystem:
$ grep -B 2 -A 2 eth /var/log/dmesg
[ 18.491927] EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro
[ 19.011059] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[ 19.251979] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 19.251985] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 19.251990] IPv6: ADDRCONF(NETDEV_UP): eth2: link is not ready
[ 19.251995] IPv6: ADDRCONF(NETDEV_UP): eth3: link is not ready
[ 19.251999] IPv6: ADDRCONF(NETDEV_UP): eth4: link is not ready
[ 19.823143] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
[ 19.868611] systemd-udevd[1283]: starting version 204
--
[ 21.828403] systemd-udevd[1348]: device 0x18d0530 filled with db file data
[ 21.828823] systemd-udevd[1348]: device 0x1812440 has devpath '/devices/pci0000:00/0000:00:09.0/0000:02:00.0/0000:03:00.0/0000:04:00.1'
[ 21.828884] systemd-udevd[1348]: NAME 'eth1' /etc/udev/rules.d/70-persistent-net.rules:11
[ 21.828980] systemd-udevd[1348]: device 0x1812440 filled with db file data
[ 21.828985] systemd-udevd[1348]: IMPORT builtin 'net_id' /lib/udev/rules.d/75-net-description.rules:6
--
[ 22.028940] systemd-udevd[1348]: device 0x18096a0 has devpath '/devices/pci0000:00'
[ 22.028980] systemd-udevd[1348]: IMPORT builtin 'hwdb' /lib/udev/rules.d/75-net-description.rules:12
[ 22.029065] systemd-udevd[1348]: changing net interface name from 'eth2' to 'eth1'
[ 22.029079] systemd-udevd[1348]: error changing net interface name eth2 to eth1: File exists
[ 22.029294] systemd-udevd[1348]: created db file '/run/udev/data/n4' for '/devices/pci0000:00/0000:00:09.0/0000:02:00.0/0000:03:00.0/0000:04:00.1/net/eth2'
[ 22.029316] systemd-udevd[1348]: passed -1 bytes to netlink monitor 0x18d1420
[ 22.029321] systemd-udevd[1348]: seq 2011 processed with -17
And this time, for the first time, the original 'eth2' that is supposed to become 'eth0' is actually 'eth1'. I attribute it to the udevd logging causing timing differences affecting kernel uevent arrival order.
$ ifconfig -a | grep '^eth'
eth0 Link encap:Ethernet HWaddr 00:15:17:8f:99:c1
eth1 Link encap:Ethernet HWaddr 00:25:22:75:e6:9e
eth2 Link encap:Ethernet HWaddr 00:15:17:8f:99:c0
eth3 Link encap:Ethernet HWaddr 00:15:17:8f:99:c3
eth4 Link encap:Ethernet HWaddr 00:15:17:8f:99:c2
Added to the kernel command-line: "udev.log- priority= 7 udev.rdlog- priority= 7"
/var/log/dmesg was flooded and lost some of the early messages since I didn't increase the log-buffer size but it did catch the systemd-udevd logging especially related to the 'net' subsystem:
$ grep -B 2 -A 2 eth /var/log/dmesg NETDEV_ UP): eth0: link is not ready NETDEV_ UP): eth1: link is not ready NETDEV_ UP): eth2: link is not ready NETDEV_ UP): eth3: link is not ready NETDEV_ UP): eth4: link is not ready udevd[1283] : starting version 204 udevd[1348] : device 0x18d0530 filled with db file data udevd[1348] : device 0x1812440 has devpath '/devices/ pci0000: 00/0000: 00:09.0/ 0000:02: 00.0/0000: 03:00.0/ 0000:04: 00.1' udevd[1348] : NAME 'eth1' /etc/udev/ rules.d/ 70-persistent- net.rules: 11 udevd[1348] : device 0x1812440 filled with db file data udevd[1348] : IMPORT builtin 'net_id' /lib/udev/ rules.d/ 75-net- description. rules:6 udevd[1348] : device 0x18096a0 has devpath '/devices/ pci0000: 00' udevd[1348] : IMPORT builtin 'hwdb' /lib/udev/ rules.d/ 75-net- description. rules:12 udevd[1348] : changing net interface name from 'eth2' to 'eth1' udevd[1348] : error changing net interface name eth2 to eth1: File exists udevd[1348] : created db file '/run/udev/data/n4' for '/devices/ pci0000: 00/0000: 00:09.0/ 0000:02: 00.0/0000: 03:00.0/ 0000:04: 00.1/net/ eth2' udevd[1348] : passed -1 bytes to netlink monitor 0x18d1420 udevd[1348] : seq 2011 processed with -17
[ 18.491927] EXT4-fs (dm-0): re-mounted. Opts: errors=remount-ro
[ 19.011059] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: (null)
[ 19.251979] IPv6: ADDRCONF(
[ 19.251985] IPv6: ADDRCONF(
[ 19.251990] IPv6: ADDRCONF(
[ 19.251995] IPv6: ADDRCONF(
[ 19.251999] IPv6: ADDRCONF(
[ 19.823143] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: (null)
[ 19.868611] systemd-
--
[ 21.828403] systemd-
[ 21.828823] systemd-
[ 21.828884] systemd-
[ 21.828980] systemd-
[ 21.828985] systemd-
--
[ 22.028940] systemd-
[ 22.028980] systemd-
[ 22.029065] systemd-
[ 22.029079] systemd-
[ 22.029294] systemd-
[ 22.029316] systemd-
[ 22.029321] systemd-
And this time, for the first time, the original 'eth2' that is supposed to become 'eth0' is actually 'eth1'. I attribute it to the udevd logging causing timing differences affecting kernel uevent arrival order.
$ ifconfig -a | grep '^eth'
eth0 Link encap:Ethernet HWaddr 00:15:17:8f:99:c1
eth1 Link encap:Ethernet HWaddr 00:25:22:75:e6:9e
eth2 Link encap:Ethernet HWaddr 00:15:17:8f:99:c0
eth3 Link encap:Ethernet HWaddr 00:15:17:8f:99:c3
eth4 Link encap:Ethernet HWaddr 00:15:17:8f:99:c2