View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0007591 | CentOS-7 | systemd | public | 2014-09-13 00:10 | 2014-12-16 16:49 |
Reporter | dzr | Assigned To | |||
Priority | high | Severity | major | Reproducibility | always |
Status | new | Resolution | open | ||
OS | CentOS | OS Version | 7.0.1406 | ||
Product Version | 7.0-1406 | ||||
Summary | 0007591: Systemd udev cannot rename network interfaces | ||||
Description | On a system with multiple network cards, interfaces enumerate somewhat randomly which is to be expected. However, udev is unable to rename the interfaces based on configured parameters. I was unable to force a device name with udev persistent rules or with ifcfg script HWADDR entries. However, if I unload and reload the igb and ixgbe kernel modules in their appropriate order, devices are named appropriately. | ||||
Steps To Reproduce | Configure naming rules Reboot system | ||||
Additional Information | Systemd commit 97595710b7 removed the ability for udev to rename an interface if the target name is in use. This causes the interface enumeration order to dictate whether a udev naming rule can be applied rather than the rules or link state dictating this. This system has an intel i350 and an 82599. See the attached log file for enumeration examples and udev rules. Sep 12 10:42:13 redacted-10g systemd-udevd[549]: starting version 208 Sep 12 10:42:15 redacted-10g systemd-udevd[565]: error changing net interface name eth2 to eth4: File exists Sep 12 10:42:15 redacted-10g systemd-udevd[564]: error changing net interface name eth3 to eth2: File exists Sep 12 10:42:15 redacted-10g systemd-udevd[569]: error changing net interface name eth4 to eth3: Device or resource busy The behavior I am reporting is identical to behavior reported for Ubuntu: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1235162 This was patched here: https://code.launchpad.net/~tj/ubuntu/saucy/systemd/lp1235162/+merge/189488 I manually applied the ubuntu patch as it was written and reinstalled systemd. Naming rules worked as expected after rebooting: Sep 12 18:37:59 redacted-10g systemd-udevd[567]: renamed network interface eth4 to rename6 Sep 12 18:37:59 redacted-10g systemd-udevd[564]: renamed network interface eth3 to rename5 Sep 12 18:37:59 redacted-10g systemd-udevd[566]: renamed network interface eth2 to eth4 Sep 12 18:37:59 redacted-10g systemd-udevd[567]: renamed network interface rename6 to eth3 Sep 12 18:37:59 redacted-10g systemd-udevd[564]: renamed network interface rename5 to eth2 | ||||
Tags | No tags attached. | ||||
abrt_hash | |||||
URL | |||||
centos_report.txt (8,893 bytes)
70-persistent-net-rules.conf SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:26:91:2f:8c:38", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:26:91:2f:8c:39", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:26:91:2f:8c:3a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:26:91:2f:8c:3b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:26:91:c7:64:82", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:26:91:c7:64:83", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth5" ======= Devices enumerating, notice eth3 is skipped: Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.0: added PHC on eth0 Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.0: eth0: (PCIe:5.0Gb/s:Width x4) 00:26:91:2f:8c:38 Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.0: eth0: PBA No: 105900-000 Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.1: added PHC on eth1 Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.1: eth1: (PCIe:5.0Gb/s:Width x4) 00:26:91:2f:8c:39 Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.1: eth1: PBA No: 105900-000 Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.2: added PHC on eth2 Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.2: eth2: (PCIe:5.0Gb/s:Width x4) 00:26:91:2f:8c:3a Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.2: eth2: PBA No: 105900-000 Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.3: added PHC on eth4 Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.3: eth4: (PCIe:5.0Gb/s:Width x4) 00:26:91:2f:8c:3b Sep 12 13:28:35 redacted-10g kernel: igb 0000:06:00.3: eth4: PBA No: 105900-000 Sep 12 13:28:36 redacted-10g kernel: IPv6: ADDRCONF(NETDEV_UP): eth4: link is not ready Sep 12 13:28:36 redacted-10g systemd-udevd[560]: error changing net interface name eth3 to eth4: File exists Sep 12 13:28:36 redacted-10g systemd-udevd[556]: error changing net interface name eth4 to eth3: Device or resource busy Sep 12 13:28:38 redacted-10g avahi-daemon[1486]: Joining mDNS multicast group on interface eth4.IPv4 with address 10.86.37.63. Sep 12 13:28:38 redacted-10g avahi-daemon[1486]: New relevant interface eth4.IPv4 for mDNS. Sep 12 13:28:38 redacted-10g avahi-daemon[1486]: Registering new address record for 10.86.37.63 on eth4.IPv4. Sep 12 13:28:38 redacted-10g network[1482]: Bringing up interface eth4: [ OK ] Sep 12 13:28:38 redacted-10g kernel: ixgbe 0000:81:00.1: registered PHC device on eth5 Sep 12 13:28:38 redacted-10g kernel: IPv6: ADDRCONF(NETDEV_UP): eth5: link is not ready Sep 12 13:28:38 redacted-10g kernel: ixgbe 0000:81:00.1 eth5: detected SFP+: 4 Sep 12 13:28:39 redacted-10g ntpd[2269]: Listen normally on 4 eth4 10.86.37.63 UDP 123 Sep 12 13:28:40 redacted-10g kernel: ixgbe 0000:81:00.1 eth5: NIC Link is Up 10 Gbps, Flow Control: RX/TX Sep 12 13:28:40 redacted-10g kernel: IPv6: ADDRCONF(NETDEV_CHANGE): eth5: link becomes ready Sep 12 13:28:40 redacted-10g avahi-daemon[1486]: Joining mDNS multicast group on interface eth5.IPv4 with address 75.126.85.56. Sep 12 13:28:40 redacted-10g avahi-daemon[1486]: New relevant interface eth5.IPv4 for mDNS. Sep 12 13:28:40 redacted-10g avahi-daemon[1486]: Registering new address record for ========= Earlier log showing udev persistent naming failing due to devices being online. Sep 12 10:42:11 redacted-10g systemd[1]: Started dracut pre-udev hook. Sep 12 10:42:11 redacted-10g systemd[1]: Starting udev Kernel Socket. -- Subject: Unit systemd-udevd-kernel.socket has begun with start-up -- Unit systemd-udevd-kernel.socket has begun starting up. Sep 12 10:42:11 redacted-10g systemd[1]: Listening on udev Kernel Socket. -- Subject: Unit systemd-udevd-kernel.socket has finished start-up -- Unit systemd-udevd-kernel.socket has finished starting up. Sep 12 10:42:11 redacted-10g systemd[1]: Starting udev Control Socket. -- Subject: Unit systemd-udevd-control.socket has begun with start-up -- Unit systemd-udevd-control.socket has begun starting up. Sep 12 10:42:11 redacted-10g systemd[1]: Listening on udev Control Socket. -- Subject: Unit systemd-udevd-control.socket has finished start-up -- Unit systemd-udevd-control.socket has finished starting up. Sep 12 10:42:11 redacted-10g systemd[1]: Starting udev Kernel Device Manager... -- Subject: Unit systemd-udevd.service has begun with start-up -- Unit systemd-udevd.service has begun starting up. Sep 12 10:42:11 redacted-10g systemd-udevd[325]: starting version 208 Sep 12 10:42:11 redacted-10g systemd[1]: Started udev Kernel Device Manager. -- Subject: Unit systemd-udevd.service has finished start-up -- Unit systemd-udevd.service has finished starting up. Sep 12 10:42:11 redacted-10g systemd[1]: Starting udev Coldplug all Devices... -- Subject: Unit systemd-udev-trigger.service has begun with start-up -- Unit systemd-udev-trigger.service has begun starting up. Sep 12 10:42:11 redacted-10g systemd-udevd[327]: could not find module by name='ipmi_si' Sep 12 10:42:11 redacted-10g systemd-udevd[327]: could not find module by name='ipmi_devintf' Sep 12 10:42:11 redacted-10g systemd-udevd[327]: could not find module by name='ipmi_msghandler' Sep 12 10:42:11 redacted-10g systemd[1]: Started udev Coldplug all Devices. -- Subject: Unit systemd-udev-trigger.service has finished start-up -- Unit systemd-udev-trigger.service has finished starting up. Sep 12 10:42:12 redacted-10g systemd[1]: Stopping udev Coldplug all Devices... -- Subject: Unit systemd-udev-trigger.service has begun shutting down -- Unit systemd-udev-trigger.service has begun shutting down. Sep 12 10:42:12 redacted-10g systemd[1]: Stopped udev Coldplug all Devices. -- Subject: Unit systemd-udev-trigger.service has finished shutting down -- Unit systemd-udev-trigger.service has finished shutting down. Sep 12 10:42:12 redacted-10g systemd[1]: Stopping udev Kernel Device Manager... -- Subject: Unit systemd-udevd.service has begun shutting down -- Unit systemd-udevd.service has begun shutting down. Sep 12 10:42:12 redacted-10g systemd[1]: Stopped udev Kernel Device Manager. -- Subject: Unit systemd-udevd.service has finished shutting down -- Unit systemd-udevd.service has finished shutting down. Sep 12 10:42:12 redacted-10g systemd[1]: Stopping udev Kernel Socket. -- Subject: Unit systemd-udevd-kernel.socket has begun shutting down -- Unit systemd-udevd-kernel.socket has begun shutting down. Sep 12 10:42:12 redacted-10g systemd[1]: Closed udev Kernel Socket. -- Subject: Unit systemd-udevd-kernel.socket has finished shutting down -- Unit systemd-udevd-kernel.socket has finished shutting down. Sep 12 10:42:12 redacted-10g systemd[1]: Stopping udev Control Socket. -- Subject: Unit systemd-udevd-control.socket has begun shutting down -- Unit systemd-udevd-control.socket has begun shutting down. Sep 12 10:42:12 redacted-10g systemd[1]: Closed udev Control Socket. -- Subject: Unit systemd-udevd-control.socket has finished shutting down -- Unit systemd-udevd-control.socket has finished shutting down. Sep 12 10:42:12 redacted-10g systemd[1]: Starting Cleanup udevd DB... -- Subject: Unit initrd-udevadm-cleanup-db.service has begun with start-up -- Unit initrd-udevadm-cleanup-db.service has begun starting up. Sep 12 10:42:12 redacted-10g systemd[1]: Started Cleanup udevd DB. -- Subject: Unit initrd-udevadm-cleanup-db.service has finished start-up -- Unit initrd-udevadm-cleanup-db.service has finished starting up. Sep 12 10:42:13 redacted-10g systemd[1]: Started udev Coldplug all Devices. -- Subject: Unit systemd-udev-trigger.service has finished start-up -- Unit systemd-udev-trigger.service has finished starting up. Sep 12 10:42:13 redacted-10g systemd[1]: Starting udev Kernel Device Manager... -- Subject: Unit systemd-udevd.service has begun with start-up -- Unit systemd-udevd.service has begun starting up. Sep 12 10:42:13 redacted-10g systemd[1]: Started udev Kernel Device Manager. -- Subject: Unit systemd-udevd.service has finished start-up -- Unit systemd-udevd.service has finished starting up. Sep 12 10:42:13 redacted-10g systemd-udevd[549]: starting version 208 Sep 12 10:42:15 redacted-10g systemd-udevd[565]: error changing net interface name eth2 to eth4: File exists Sep 12 10:42:15 redacted-10g systemd-udevd[564]: error changing net interface name eth3 to eth2: File exists Sep 12 10:42:15 redacted-10g systemd-udevd[569]: error changing net interface name eth4 to eth3: Device or resource busy |
|
Please file this request for enhancement at bugzilla.redhat.com. Being built from the sources published by RedHat, CentOS will automatically pick the change(s), once they are implemented. |
|
I'm also experiencing the same problem. The Ubuntu patch from last year applies cleanly in the RPM. Asking around in the systemd IRC channel it appears that the change was deliberate. Perhaps I missed something, but it was very poorly communicated and there are many people that have a need to reshuffle ethX interfaces. Hopefully Red Hat will realize the mistake and revert it. In the meantime we'll just have to maintain our own RPMs. |
|
I checked RH bugzilla before reporting this with RH. There was a similar bug filed and it was closed as wontfix. | |
... and in this case, since CentOS aims 100% compatibility with RHEL, all we could do is add an entry in the CentOS 7 FAQ and note this difference in behaviour compared to previous releases. |
|
Do you remember which bug number it was filled under with RedHat? I checked their bugzilla but couldn't find it. Would like to chase this with them and it would help if I had the reference. Thx. | |
do we have any progress on this, i've just noticed it when running a centos7 vm in exsi. seems at some point vmware reordered the nics and to put them back i need to use udev (as sysconfig/network-scripts/ifcfg-eth* seems to ignore mac addresses). the centos7faq incorrectly states: """If you have multiple interfaces and want to control naming of each device rather than letting the kernel do in its own way, /etc/udev/rules.d/60-net.rules seems necessary to override /usr/lib/udev/rules.d/60-net.rules.""" which is wrong as /usr/lib/udev/rules.d/60-net.rules doesn't exist and now we know that /etc/udev/rules.d/60-net.rules doesn't work either! did we ever find the redhat bug? |
|
Date Modified | Username | Field | Change |
---|---|---|---|
2014-09-13 00:10 | dzr | New Issue | |
2014-09-13 00:10 | dzr | File Added: centos_report.txt | |
2014-09-13 00:19 |
|
Note Added: 0020899 | |
2014-09-13 00:20 |
|
Note Edited: 0020899 | |
2014-10-03 21:32 | watts | Note Added: 0021055 | |
2014-10-04 00:23 | dzr | Note Added: 0021056 | |
2014-10-04 04:11 |
|
Note Added: 0021057 | |
2014-10-04 04:12 |
|
Note Edited: 0021057 | |
2014-10-27 16:25 | aneagoe | Note Added: 0021406 | |
2014-12-16 16:49 | sej7278 | Note Added: 0021968 |