Bug 729893

Summary: [RFE] Spice clients should use a connection concentration
Product: Red Hat Enterprise Linux 7 Reporter: Qunfang Zhang <qzhang>
Component: spiceAssignee: Uri Lublin <uril>
Status: CLOSED NOTABUG QA Contact:
Severity: medium Docs Contact:
Priority: low    
Version: 7.0CC: bcao, juzhang, michen, mkenneth, tburke, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-12-13 09:51:51 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Qunfang Zhang 2011-08-11 07:07:20 UTC
Description of problem:
Boot guest on src host and also in dst host with spice. On dst host: "-spice port=5930,disable-ticketing -vga qxl -incoming tcp:0:5800". When open the dst guest with spice but using a wrong port number 5800, the guest quit.

Version-Release number of selected component (if applicable):
kernel-2.6.32-178.el6.x86_64
qemu-kvm-0.12.1.2-2.177.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Boot guest on src host with spice.
/usr/libexec/qemu-kvm -m 2G -smp 4 -cpu cpu64-rhel6,+x2apic -usbdevice tablet -drive file=/mnt/win7-32-virtio.qcow2,if=none,id=drive-ide0-0-0,werror=stop,rerror=stop,cache=none -device virtio-blk-pci,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,mac=00:10:1a:3b:20:1f,bus=pci.0,addr=0x4 -boot dc -uuid 6d59434d-3f1c-4558-afc3-37e2cc430d6b -rtc-td-hack -no-kvm-pit-reinjection -monitor stdio -name rhel6.1-32 -spice port=5930,disable-ticketing -vga qxl -device virtio-balloon-pci,bus=pci.0,id=balloon0 -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x7 -chardev socket,id=channel0,host=127.0.0.1,port=12345,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=channel0,id=channel0,name=com.redhat.rhevm.vdsm -chardev spicevmc,id=charchannel1,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 -usb -k en-us -global qxl-vga.vram_size=67108864


2.Boot guest on dst host in listening mode:
/usr/libexec/qemu-kvm -m 2G -smp 4 -cpu cpu64-rhel6,+x2apic -usbdevice tablet -drive file=/mnt/win7-32-virtio.qcow2,if=none,id=drive-ide0-0-0,werror=stop,rerror=stop,cache=none -device virtio-blk-pci,drive=drive-ide0-0-0,id=ide0-0-0 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,mac=00:10:1a:3b:20:1f,bus=pci.0,addr=0x4 -boot dc -uuid 6d59434d-3f1c-4558-afc3-37e2cc430d6b -rtc-td-hack -no-kvm-pit-reinjection -monitor stdio -name rhel6.1-32 -spice port=5930,disable-ticketing -vga qxl -device virtio-balloon-pci,bus=pci.0,id=balloon0 -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x7 -chardev socket,id=channel0,host=127.0.0.1,port=12345,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=channel0,id=channel0,name=com.redhat.rhevm.vdsm -chardev spicevmc,id=charchannel1,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=com.redhat.spice.0 -usb -k en-us -global qxl-vga.vram_size=67108864 -incoming tcp:0:5800

3.View the guest with spice but using a wrong port number
# spicec -h dst_host_ip -p 5800 (actually should be 5930)

4. On dst guest qemu monitor:
(qemu) load of migration failed
  
Actual results:
dst guest quit.

Expected results:
dst guest should not quit, spice can not open with the wrong port.

Additional info:

Comment 2 Dor Laor 2011-08-11 21:05:29 UTC
Not sure we need to protect against it.
Spice clients should use a connection concentration instead

Comment 4 Uri Lublin 2011-12-13 09:51:51 UTC
This is not a bug. qemu-kvm is expecting migration packets coming in its migration "incoming" port (5800 in the example above), and gets spice packets. This is seen as migration failure and qemu-kvm on the destination host quits.

This is not related to spice.
Any program that connect to a tcp port will do.
For example "telnet <dst-host-ip> <incoming-migration-port>" would end up with the qemu-kvm exiting.
And running spice client with a different "bad" port will do nothing to the VM.

Closing as "not a bug".