Bug 839984

Summary: [PATCH sysfs] kernel cannot rename network interfaces
Product: Red Hat Enterprise Linux 6 Reporter: Kontantin Khlebnikov <khlebnikov>
Component: kernelAssignee: John Greene <jogreene>
Status: CLOSED ERRATA QA Contact: Weibing Zhang <atzhang>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 6.3CC: agospoda, atzhang, chorn, khorenko, kzhang, nhorman, ypei
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: kernel-2.6.32-328.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1090442 (view as bug list) Environment:
Last Closed: 2013-02-21 06:40:13 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1090442    
Attachments:
Description Flags
simplified bug fix none

Description Kontantin Khlebnikov 2012-07-13 11:15:42 UTC
Created attachment 598042 [details]
simplified bug fix

Description of problem:

# rmmod veth
# modprobe veth
# ip link add type veth
# ip l
<snip>
6: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether a2:29:1f:9d:71:25 brd ff:ff:ff:ff:ff:ff
7: veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 4a:8b:af:ea:ab:ab brd ff:ff:ff:ff:ff:ff
# ip link set dev veth0 name veth2
# ip link set dev veth1 name veth3
RTNETLINK answers: No such file or directory

kernel cannot rename veth1, because it cannot find it in rb-tree (s_dir.children) because tree was corrupted during renaming veth0 into veth2.

bug was accidentially fixed in mainline v2.6.33
commit ca1bab38195d66bdf42320a99cc7359434a271d3

Version-Release number of selected component (if applicable):
RHEL 6.3
kernel 2.6.32-279.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 2 John Greene 2012-09-19 18:47:56 UTC
added suggested patch. Basic test on ppc64 (which has the device) didn't reproduce failure but this seems prudent to include.

Created task: 4887556
Task info: http://brewweb.devel.redhat.com/brew/taskinfo?taskID=4887556

Comment 3 John Greene 2012-09-20 15:38:24 UTC
retest of fix works fine, i.e.

[root@ibm-js22-vios-02-lp1 ~]# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether ea:07:96:9e:2b:04 brd ff:ff:ff:ff:ff:ff
3: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether b6:02:c5:8a:23:51 brd ff:ff:ff:ff:ff:ff
4: veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 62:87:c3:df:1f:5a brd ff:ff:ff:ff:ff:ff
[root@ibm-js22-vios-02-lp1 ~]# ip link set dev veth0 name veth2
[root@ibm-js22-vios-02-lp1 ~]# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether ea:07:96:9e:2b:04 brd ff:ff:ff:ff:ff:ff
3: veth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether b6:02:c5:8a:23:51 brd ff:ff:ff:ff:ff:ff
4: veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 62:87:c3:df:1f:5a brd ff:ff:ff:ff:ff:ff
[root@ibm-js22-vios-02-lp1 ~]# ip link set dev veth1 name veth3
[root@ibm-js22-vios-02-lp1 ~]# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether ea:07:96:9e:2b:04 brd ff:ff:ff:ff:ff:ff
3: veth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether b6:02:c5:8a:23:51 brd ff:ff:ff:ff:ff:ff
4: veth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 62:87:c3:df:1f:5a brd ff:ff:ff:ff:ff:ff
[root@ibm-js22-vios-02-lp1 ~]# ip link set dev veth3 name veth5
[root@ibm-js22-vios-02-lp1 ~]# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether ea:07:96:9e:2b:04 brd ff:ff:ff:ff:ff:ff
3: veth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether b6:02:c5:8a:23:51 brd ff:ff:ff:ff:ff:ff
4: veth5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 62:87:c3:df:1f:5a brd ff:ff:ff:ff:ff:ff
[root@ibm-js22-vios-02-lp1 ~]# ip link set dev veth2 name veth4
[root@ibm-js22-vios-02-lp1 ~]# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether ea:07:96:9e:2b:04 brd ff:ff:ff:ff:ff:ff
3: veth4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether b6:02:c5:8a:23:51 brd ff:ff:ff:ff:ff:ff
4: veth5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 62:87:c3:df:1f:5a brd ff:ff:ff:ff:ff:ff
[root@ibm-js22-vios-02-lp1 ~]# ip link set dev veth0 name veth9
Cannot find device "veth0"
[root@ibm-js22-vios-02-lp1 ~]# ip link set dev veth4 name veth0
[root@ibm-js22-vios-02-lp1 ~]# ip link set dev veth5 name veth1
[root@ibm-js22-vios-02-lp1 ~]# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether ea:07:96:9e:2b:04 brd ff:ff:ff:ff:ff:ff
3: veth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether b6:02:c5:8a:23:51 brd ff:ff:ff:ff:ff:ff
4: veth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 62:87:c3:df:1f:5a brd ff:ff:ff:ff:ff:ff

Comment 4 RHEL Program Management 2012-09-20 15:51:05 UTC
This request was evaluated by Red Hat Product Management for
inclusion in a Red Hat Enterprise Linux release.  Product
Management has requested further review of this request by
Red Hat Engineering, for potential inclusion in a Red Hat
Enterprise Linux release for currently deployed products.
This request is not yet committed for inclusion in a release.

Comment 6 Jarod Wilson 2012-10-10 19:50:17 UTC
Patch(es) available on kernel-2.6.32-328.el6

Comment 9 Weibing Zhang 2013-01-11 08:27:54 UTC
[root@ibm-x3650m4-04 ~]# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
4: eth4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:10:18:e8:2a:20 brd ff:ff:ff:ff:ff:ff
5: eth5: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:10:18:e8:2a:22 brd ff:ff:ff:ff:ff:ff
6: eth6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 6c:ae:8b:36:cd:4a brd ff:ff:ff:ff:ff:ff
7: eth7: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 6c:ae:8b:36:cd:4b brd ff:ff:ff:ff:ff:ff
8: eth8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 6c:ae:8b:36:cd:4c brd ff:ff:ff:ff:ff:ff
9: eth9: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 6c:ae:8b:36:cd:4d brd ff:ff:ff:ff:ff:ff
10: eth10: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:0e:1e:0e:1e:90 brd ff:ff:ff:ff:ff:ff
11: eth11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0e:1e:0e:1e:94 brd ff:ff:ff:ff:ff:ff
12: eth12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 90:e2:ba:29:c0:ac brd ff:ff:ff:ff:ff:ff
13: eth13: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 90:e2:ba:29:c0:ad brd ff:ff:ff:ff:ff:ff
14: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 6e:ae:8b:36:cd:49 brd ff:ff:ff:ff:ff:ff
17: eth11.3@eth11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 00:0e:1e:0e:1e:94 brd ff:ff:ff:ff:ff:ff
18: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:90:fa:13:ca:e4 brd ff:ff:ff:ff:ff:ff
19: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:90:fa:13:ca:e6 brd ff:ff:ff:ff:ff:ff
[root@ibm-x3650m4-04 ~]# ip link set dev eth12 name eth18
RTNETLINK answers: Device or resource busy
[root@ibm-x3650m4-04 ~]# ip link set dev eth13 name eth18
[root@ibm-x3650m4-04 ~]# ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
4: eth4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:10:18:e8:2a:20 brd ff:ff:ff:ff:ff:ff
5: eth5: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:10:18:e8:2a:22 brd ff:ff:ff:ff:ff:ff
6: eth6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 6c:ae:8b:36:cd:4a brd ff:ff:ff:ff:ff:ff
7: eth7: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 6c:ae:8b:36:cd:4b brd ff:ff:ff:ff:ff:ff
8: eth8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 6c:ae:8b:36:cd:4c brd ff:ff:ff:ff:ff:ff
9: eth9: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 6c:ae:8b:36:cd:4d brd ff:ff:ff:ff:ff:ff
10: eth10: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:0e:1e:0e:1e:90 brd ff:ff:ff:ff:ff:ff
11: eth11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0e:1e:0e:1e:94 brd ff:ff:ff:ff:ff:ff
12: eth12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 90:e2:ba:29:c0:ac brd ff:ff:ff:ff:ff:ff
13: eth18: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 90:e2:ba:29:c0:ad brd ff:ff:ff:ff:ff:ff
14: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 6e:ae:8b:36:cd:49 brd ff:ff:ff:ff:ff:ff
17: eth11.3@eth11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP 
    link/ether 00:0e:1e:0e:1e:94 brd ff:ff:ff:ff:ff:ff
18: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:90:fa:13:ca:e4 brd ff:ff:ff:ff:ff:ff
19: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:90:fa:13:ca:e6 brd ff:ff:ff:ff:ff:ff

Set Verified.

Comment 11 errata-xmlrpc 2013-02-21 06:40:13 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHSA-2013-0496.html