Regression: Persistent net names via /etc/udev/rules.d/70-persistent-net.rules fail
Bug #1235162 reported by
TJ
This bug affects 3 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Invalid
|
Undecided
|
Unassigned | ||
Saucy |
Invalid
|
Undecided
|
Unassigned | ||
systemd (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Saucy |
Fix Released
|
High
|
Unassigned |
Bug Description
systemd-udev 204.
Installing 13.10 amd64 on a multi-homed server. There are 5 ethernet interfaces, one on the mobo and four on a PCIe adapter.
udev created "/etc/udev/
These rules are apparently ignored but it transpires that the kernel is returning -EEXIST from net/core/
This renaming works in earlier versions, specifically on a 12.04 LTS server with ten Ethernet interfaces, and is therefore a regression.
Related branches
lp:~tj/ubuntu/saucy/systemd/lp1235162
- Tychodickerson (community): Approve
- Martin Pitt: Approve
-
Diff: 1155 lines (+1089/-5)6 files modified.pc/0030-revert-removal-of-rename_netif-functionality.patch/src/udev/udev-event.c (+914/-0)
.pc/applied-patches (+1/-0)
debian/changelog (+8/-0)
debian/patches/0030-revert-removal-of-rename_netif-functionality.patch (+103/-0)
debian/patches/series (+1/-0)
src/udev/udev-event.c (+62/-5)
Changed in systemd (Ubuntu Saucy): | |
status: | Triaged → Fix Committed |
To post a comment you must log in.
I've done some further tests after boot-time.
$ cat /etc/udev/ rules.d/ 70-persistent- net.rules write_net_ rules net-generator. rules rules file.
# This file was automatically generated by the /lib/udev/
# program, run by the persistent-
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x10de:0x03ef (forcedeth) =="00:25: 22:75:e6: 9e", ATTR{dev_ id}=="0x0" , ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}
# PCI device 0x8086:0x10bc (e1000e) =="00:15: 17:8f:99: c0", ATTR{dev_ id}=="0x0" , ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}
# PCI device 0x8086:0x10bc (e1000e) =="00:15: 17:8f:99: c1", ATTR{dev_ id}=="0x0" , ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}
# PCI device 0x8086:0x10bc (e1000e) =="00:15: 17:8f:99: c2", ATTR{dev_ id}=="0x0" , ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}
# PCI device 0x8086:0x10bc (e1000e) =="00:15: 17:8f:99: c3", ATTR{dev_ id}=="0x0" , ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}
$ inotifywatch -m /etc/udev/rules.d/
$ service udev restart
/etc/udev/rules.d/ OPEN,ISDIR CLOSE,ISDIR net.rules net.rules net.rules
/etc/udev/rules.d/ CLOSE_NOWRITE,
/etc/udev/rules.d/ OPEN 70-persistent-
/etc/udev/rules.d/ ACCESS 70-persistent-
/etc/udev/rules.d/ CLOSE_NOWRITE,CLOSE 70-persistent-
$ ifconfig -a | grep '^eth'
eth0 Link encap:Ethernet HWaddr 00:15:17:8f:99:c1 # rules say eth2
eth1 Link encap:Ethernet HWaddr 00:15:17:8f:99:c0 # rules say eth1
eth2 Link encap:Ethernet HWaddr 00:25:22:75:e6:9e # rules say eth0
eth3 Link encap:Ethernet HWaddr 00:15:17:8f:99:c3 # rules say eth4
eth4 Link encap:Ethernet HWaddr 00:15:17:8f:99:c2 # rules say eth3
$ udevadm monitor --kernel --udev --property --subsystem- match=net | tee /tmp/udev.log
$udevadm trigger action=add subsystem-match=net
Attached "udev.log" containing monitor output.