Bug 1460073

Summary: Guest reboot during data transfer with virtio serial port triggers "Virtqueue size exceeded"
Product: Red Hat Enterprise Linux 7 Reporter: Sitong Liu <siliu>
Component: qemu-kvmAssignee: pagupta
Status: CLOSED CURRENTRELEASE QA Contact: Sitong Liu <siliu>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.3CC: chayang, hhuang, juzhang, michen, rbalakri, virt-maint, xfu
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-14 06:52:24 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 Sitong Liu 2017-06-09 01:54:43 UTC
Description of problem:
Guest reboot during data transfer with virtio serial port triggers "Virtqueue size exceeded", qemu process quits.

Version-Release number of selected component (if applicable):
qemu-kvm-1.5.3-126.el7_3.9 (fail)
qemu-kvm-1.5.3-126.el7_3.8 (fail)
qemu-kvm-1.5.3-126.el7_3.7 (fail)

kernel 3.10.0-514.el7.x86_64 (host and guest) (fail)
kernel 3.10.0-668.el7.x86_64 (host and guest) (fail)

How reproducible:
(4/4)

Steps to Reproduce:
1.boot up guest with the following cli

/usr/libexec/qemu-kvm -M pc -name seabios-test -enable-kvm -m 4G -cpu SandyBridge -smp 4,cores=4,threads=1,sockets=1,maxcpus=4 -nodefconfig \
-nodefaults -chardev socket,id=charmonitor,path=/tmp/126NICW10S64SOB,server,nowait \
-mon chardev=charmonitor,id=monitor,mode=control \
-rtc base=localtime,driftfix=slew -boot order=ncd,menu=on \
-vga std \
-vnc :2 \
-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x4 \
-chardev socket,id=channel0,host=127.0.0.1,port=12345,server,nowait \
-device virtserialport,chardev=channel0,name=org.linux-kvm.port.0,bus=virtio-serial0.0,id=port1 \
-qmp tcp:0:6666,server,nowait \
-drive file=/home/kvm_autotest_root/images/rhel73-64-virtio.qcow2,if=none,id=drive-ide0-0-0,cache=none,werror=stop,rerror=stop,aio=threads \
-device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 -boot menu=on \
-device virtio-net-pci,netdev=tap10,mac=64:31:50:23:6d:63 \
-netdev tap,id=tap10 \
-monitor stdio

2. Transfering data from guest to host via port1 in a loop
//guest
for(;;)
do
    echo $a > /dev/vport1p1
    a=$(($a+1))
done

//host
nc 127.0.0.1 12345

3. ctrl+c host and guest, reboot guest, and repeat step 2.
repeat several times.

Actual results:
Qemu process quits, triggers "Virtqueue size exceeded".

Expected results:
Qemu works well after reboot.

Additional info:
It is not a regression bug.