Hide Forgot
Description of problem: --------------------------- Boot guest with virtio-serial, attached with a unix socket chardev, guest and host can communicate with it at beginning, after closing connection several times from host side, communication failed. Version-Release number of selected component (if applicable): ---------------------------------------------------------------- 2.6.32-174.el6.x86_64 qemu-kvm-0.12.1.2-2.175.el6.x86_64 How reproducible: ------------------ 100% Steps to Reproduce: --------------------- 1.boot guest with: #/usr/libexec/qemu-kvm -enable-kvm -M rhel6.2.0 -smp 4 -m 4G -name rhel6.1-64 -uuid 3f2ea5cd-3d29-48ff-aab2-23df1b6ae213 -drive file=RHEL-Server-6.1-64-virtio.qcow2,cache=none,if=none,rerror=stop,werror=stop,id=drive-virtio-disk0,format=qcow2 -device virtio-blk-pci,drive=drive-virtio-disk0,id=device-virtio-disk0 -netdev tap,script=/etc/qemu-ifup,id=netdev0 -device virtio-net-pci,netdev=netdev0,id=device-net0 -boot order=cd,menu=on -usb -device usb-tablet,id=input0 -spice disable-ticketing,port=5910 -monitor stdio -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5 -chardev socket,id=channel0,path=/tmp/foo,server,nowait -device virtserialport,chardev=channel0,name=port.0,bus=virtio-serial0.0,id=port0 2.in the host: #nc -U /tmp/foo > a.out 3.in the guest: #dd if=/dev/urandom of=test bs=1M count=100 #cat test > /dev/vport0p1 4.First time, it works fine, file cksum matches. 5.In host, stop nc by "ctrl+c", restart nc. 6.In guest: #cat test > /dev/vport0p1 7.repeat 5-6 Actual results: ----------------- After step 7 1-2 times, communicate failed. Expected results: ------------------ Communication should work every time after step 7 Additional info:
Do you wait for the transfer to finish each time before hitting Ctrl+C? Or do you do it in the middle of the transfer? If you do it in the middle, do you re-start transfer in guest, or do you let it continue?
(In reply to comment #3) > Do you wait for the transfer to finish each time before hitting Ctrl+C? > > Or do you do it in the middle of the transfer? If you do it in the middle, do > you re-start transfer in guest, or do you let it continue? I find when nc is terminated by "ctrl+c", its process will reside in system, and multiple nc processes cause connection failed, it's necessary to modify our test case to kill nc instead of "ctrl+c", close this as NOTABUG.