Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
For bugs related to Red Hat Enterprise Linux 5 product line. The current stable release is 5.10. For Red Hat Enterprise Linux 6 and above, please visit Red Hat JIRA https://issues.redhat.com/secure/CreateIssue!default.jspa?pid=12332745 to report new issues.

Bug 537045

Summary: Ifconfig down/up to the slave in the guest and ping the bonding interface in the guest would cause the guest hang.
Product: Red Hat Enterprise Linux 5 Reporter: jason wang <jasowang>
Component: kvmAssignee: Amit Shah <amit.shah>
Status: CLOSED WORKSFORME QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: low    
Version: 5.4.zCC: akong, tburke, virt-maint, ykaul
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-11-25 12:47:46 UTC Type: ---
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: 580946    
Attachments:
Description Flags
strace result none

Description jason wang 2009-11-12 10:15:15 UTC
Description of problem:
Ping the bonding interface in the guest and use scirpt to ifconfig down/up to the slave interface would eventually cause the hang of guest.

Version-Release number of selected component (if applicable):
KVM version:
kvm-83-105.el5_4.10
kmod-kvm-83-105.el5_4.10
kvm-debuginfo-83-105.el5_4.10
kvm-tools-83-105.el5_4.10
etherboot-zroms-kvm-5.4.4-10.el5
kvm-qemu-img-83-105.el5_4.10
Kernel version:
2.6.18-164.2.1.el5

How reproducible:
100%

Steps to Reproduce:
1. start the virtual machine with two e1000 nic and smp 2
2. setup the bonding for the two interface in guest
3. in the guest run the following scripts:
while true; do ifconfig eth0 down; ifconfig eth0 up; ifconfig eth1 down; ifconfig eth1 up; done
4. ping the guest in the host: ping -i 0.001 $ip
  
Actual results:
1. Guest hang after seconds or minutes

Expected results:
1. Guest should works normally

Additional info:
When testing with two rtl8139s, the guest is not hung but the network connection is lost after seconds or minutes.
Could not test virtio nics because of bug #523915.

qemu command line:
qemu-kvm -drive file=RHEL-Server-5.4-64-virtio.qcow2,if=virtio,boot=on -net nic,model=rtl8139,macaddr=00:11:11:22:11:01,vlan=0 -net tap,vlan=0 -net nic,model=rtl8139,macaddr=00:11:11:22:11:02,vlan=1 -net tap,vlan=1 -m 1024 -vnc :10 -daemonize -smp 2

topology:
+-------------------------+
|   +----------------+    |
|   |     bond0      |    |
|   +----------------+    |
|       /        \        |
|   +------+  +------+    |
|   | eth0 |  | eth1 |    |
|   +------+  +------+    |
|      |         |  Guest |
+------|---------|--------+
       |         |
   +------+  +------+
   | tap0 |  | tap1 |
   +------+  +------+
       |         |
   +----------------+
   |     switch     |
   +----------------+
       |
   +------+
   | eth0 |
   +------+
       |
       +------------------------


bonding configuration of guest:
ifcfg-eth0:
DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

ifcfg-eth1:
DEVICE=eth1
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

ifcfg-bond0:
DEVICE=bond0
BOOTPROTO=dhcp
ONBOOT=yes
USERCTL=no

switch configuration of host:
$brctl show
bridge name bridge id STP enabled interfaces
switch 8000.0023ae6ff63d no tap1
tap0
eth0
bridge configuration:
$cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=switch
BOOTPROTO=dhcp
ONBOOT=yes
DELAY=0
TYPE=Bridge

Comment 1 jason wang 2009-11-12 10:20:34 UTC
Created attachment 369176 [details]
strace result