Bug 1311046

Summary: dhclient process is created for dev even dev is added into bridge
Product: Red Hat Enterprise Linux 6 Reporter: Jianlin Shi <jishi>
Component: initscriptsAssignee: initscripts Maintenance Team <initscripts-maint-list>
Status: CLOSED WONTFIX QA Contact: qe-baseos-daemons
Severity: high Docs Contact:
Priority: high    
Version: 6.8CC: deekej, jishi, kdudka
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-09 17:36:10 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:

Description Jianlin Shi 2016-02-23 09:13:37 UTC
Description of problem:
dhclient process is created for dev even dev is added into bridge, which make the network of bridge unreachable

Version-Release number of selected component (if applicable):
distro: RHEL6.8-20160212.2
initscripts-9.03.50-1.el6.x86_64

How reproducible:
Almost always with reproducer 

Steps to Reproduce:
#!/bin/bash


nic_bkr=eth2
br_bkr=br_wan
nic_test=eth0


pkill dhclient
brctl delif $br_bkr $nic_bkr  && sleep 2 && dhclient $nic_bkr
ip addr flush dev $br_bkr
ip link set $br_bkr down
brctl delbr $br_bkr
service NetworkManager stop
iptables -F
ip6tables -F
setenforce 0

# prepare bridge shared by beaker and vm
pkill dhclient
sleep 2
brctl addbr $br_bkr
ip link set $br_bkr up
brctl addif $br_bkr $nic_bkr && dhclient $br_bkr
ip addr flush dev $nic_bkr
ip link set $nic_test up
ip addr flush dev $nic_test
brctl show
ip addr list up

Actual results:
network of bridge(br_wan) becomes unreachable

Expected results:
network of bridge can be reached

Additional info:

[root@hp-dl380pg8-16 test]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.8 Beta (Santiago)
[root@hp-dl380pg8-16 test]# uname -a            
Linux hp-dl380pg8-16.rhts.eng.pek2.redhat.com 2.6.32-614.el6.x86_64 #1 SMP Mon Feb 8 23:43:40 EST 2016 x86_64 x86_64 x86_64 GNU/Linux


after run reproducer:

[root@hp-dl380pg8-16 test]# ip addr sh up
ip addr sh up
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
4: eth0: <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
6: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 28:80:23:9d:46:9c brd ff:ff:ff:ff:ff:ff
    inet 10.73.130.101/23 brd 10.73.131.255 scope global eth2
36: br_wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 28:80:23:9d:46:9c brd ff:ff:ff:ff:ff:ff
    inet 10.73.130.101/23 brd 10.73.131.255 scope global br_wan
    inet6 2620:52:0:4982:2a80:23ff:fe9d:469c/64 scope global dynamic 
       valid_lft 2591940sec preferred_lft 604740sec
    inet6 fe80::38ef:7eff:fe11:ae9/64 scope link 
       valid_lft forever preferred_lft forever

[root@hp-dl380pg8-16 test]# brctl show
brctl show
bridge name	bridge id		STP enabled	interfaces
br_wan		8000.2880239d469c	no		eth2
<============eth2 is in bridge br_wan

[root@hp-dl380pg8-16 test]# ps aux | grep dhclient
ps aux | grep dhclient
root     42365  0.0  0.0   9124   800 ?        Ss   17:08   0:00 dhclient br_wan
root     42436  0.0  0.0   9124   728 ?        S<s  17:08   0:00 /sbin/dhclient -H hp-dl380pg8-16 -1 -q -cf /etc/dhcp/dhclient-eth2.conf -lf /var/lib/dhclient/dhclient-eth2.leases -pf /var/run/dhclient-eth2.pid eth2
<==========dhclient process for eth2 is created
root     42509  0.0  0.0 106028   868 ttyS1    S+   17:09   0:00 grep dhclient

[root@hp-dl380pg8-16 test]# route -n
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.73.130.0     0.0.0.0         255.255.254.0   U     0      0        0 br_wan
10.73.130.0     0.0.0.0         255.255.254.0   U     0      0        0 eth2
169.254.0.0     0.0.0.0         255.255.0.0     U     1006   0        0 eth2
0.0.0.0         10.73.131.254   0.0.0.0         UG    0      0        0 eth2

<===========route of eth2 is created. which makes br_wan unreachable .

Comment 1 Jianlin Shi 2016-02-23 09:15:09 UTC
normal on rhel-6.7GA

[root@ibm-x3650m4-09 test]# uname -a
Linux ibm-x3650m4-09.rhts.eng.pek2.redhat.com 2.6.32-573.el6.x86_64 #1 SMP Wed Jul 1 18:23:37 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@ibm-x3650m4-09 test]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 6.7 (Santiago)

After run reproducer:

[root@ibm-x3650m4-09 test]# ip addr sh up
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 8c:7c:ff:2e:14:00 brd ff:ff:ff:ff:ff:ff
6: eth4: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 6c:ae:8b:38:aa:f2 brd ff:ff:ff:ff:ff:ff
14: br_wan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 6c:ae:8b:38:aa:f2 brd ff:ff:ff:ff:ff:ff
    inet 10.73.130.107/23 brd 10.73.131.255 scope global br_wan
    inet6 2620:52:0:4982:6eae:8bff:fe38:aaf2/64 scope global dynamic 
       valid_lft 2591961sec preferred_lft 604761sec
    inet6 fe80::fc1c:51ff:feb5:47f/64 scope link 
       valid_lft forever preferred_lft forever
[root@ibm-x3650m4-09 test]# ps aux | grep dhclient
root      8622  0.0  0.0   9120   808 ?        Ss   16:33   0:00 dhclient br_wan
root      8784  0.0  0.0 103320   928 pts/0    S+   17:14   0:00 grep dhclient
[root@ibm-x3650m4-09 test]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.73.130.0     0.0.0.0         255.255.254.0   U     0      0        0 br_wan
0.0.0.0         10.73.131.254   0.0.0.0         UG    0      0        0 br_wan

Comment 3 Lukáš Nykrýn 2016-02-23 11:29:11 UTC
Can you attach here your ifcfg files? And if you have some ifcfg file related to the bridge interface, can you try adding there HOTPLUG=no?

Comment 4 Jianlin Shi 2016-02-24 01:32:37 UTC
(In reply to Lukáš Nykrýn from comment #3)
> Can you attach here your ifcfg files? And if you have some ifcfg file
> related to the bridge interface, can you try adding there HOTPLUG=no?

[root@hp-dl380pg8-16 ~]# cat ifcfg-eth2 
DEVICE="eth2"
BOOTPROTO="dhcp"
HWADDR="28:80:23:9D:46:9C"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="370aa1fd-eb80-4369-8fa6-076626969775"

There is no ifcfg file for bridge, we added the bridge with ip manually.

After added HOTPLUG=no, the new dhclient process wasn't created any more.

Comment 5 Lukáš Nykrýn 2016-03-11 09:59:24 UTC
This is yet another race with hotplug. The wrkaround is to eput HOPLUG not to sysconfig/network of the ifcfg files. Not a blocker for 6.8

Comment 7 David Kaspar // Dee'Kej 2016-11-09 17:36:10 UTC
It has been decided that race condition with HOTPLUG will not be fixed for RHEL-6. For more info, please refer to BZ #855107.