Bug 1004138

Summary: Command " client_migrate_info" under qemu makes migration failed.
Product: Red Hat Enterprise Linux 7 Reporter: Qian Guo <qiguo>
Component: qemu-kvmAssignee: Juan Quintela <quintela>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: acathrow, chayang, hhuang, juzhang, mazhang, michen, qzhang, 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: 2014-02-11 22:16:46 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:

Description Qian Guo 2013-09-04 03:36:03 UTC
Description of problem:
Before migration, do " client_migrate_info" under hmp, the migration will fail.

Version-Release number of selected component (if applicable):
# uname -r
3.10.0-15.el7.x86_64
# rpm -q qemu-kvm
qemu-kvm-1.5.3-2.el7.x86_64

spice client:
# rpm -q virt-viewer
virt-viewer-0.5.7-1.el7.x86_64


How reproducible:
100%

Steps to Reproduce:
1.Boot qemu in src host, and the listening mode in dst host, use spice in this case.
# /usr/libexec/qemu-kvm -cpu Penryn -enable-kvm -m 4096 -smp 4,sockets=1,cores=4,threads=1 -name rhel7base  -drive file=/mnt/rhel7cp1.qcow2_v3,if=none,id=drive-virtio-disk0,format=qcow2,werror=stop,rerror=stop,aio=native -device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0 -boot menu=on -monitor stdio -netdev tap,id=hostnet0,ifname=guest1,script=/etc/ovs-ifup,downscript=/etc/ovs-ifdown,vhost=on,queues=4 -device virtio-net,netdev=hostnet0,mac=54:52:1b:35:3c:16,id=test,mq=on,vectors=9 -nodefaults -nodefconfig -spice port=5930,seamless-migration=on,disable-ticketing -vga qxl -global qxl-vga.vram_size=67108864   -device virtio-balloon-pci,id=balloon1 -qmp tcp:0:4446,server,nowait -device intel-hda,id=hda1 -device hda-duplex -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -serial unix:/tmp/qiguo,server,nowait

2.Launch spice window via spicec/ virt-viewer
# remote-viewer spice://$src_ip:5930

3.In src qemu, do the following cmd, and there's a output here:
(qemu) client_migrate_info spice $dst_ip $port
main_channel_client_handle_migrate_connected: client 0x7f1125378080 connected: 0 seamless 0

4.Migrate guest to dst
# migrate -d tcp:$dst_ip:$port

Actual results:
Migrate failed, print this from src qemu
(qemu) main_channel_migrate_src_complete: 

Dst qemu quit :

(qemu) load of migration failed

Expected results:
Can migrate after the 
(qemu) client_migrate_info spice $dst_ip $port

Additional info:

Comment 1 Qian Guo 2013-09-04 03:39:25 UTC
If during all steps, don't launch the spice client, won't hit this bug.

Comment 3 Qian Guo 2013-09-05 06:14:20 UTC
For this bug, I made a mistake, when I use the command "client_migrate_info", the port I used is the listening port of dst qemu process, if use the spice port, no such issue, and if use a port that is not the dst listening one (I tried the qmp port or a free port), dst qemu process won't quit, and can migrate successfully.

So this bug is just happened after launch the spice window, then execute cmd "client_migrate_info " with the dst host listening mode, then the dst qemu quit.

If this is not a bug, please feel free to close it.

Comment 4 Juan Quintela 2014-02-11 22:16:46 UTC
Acording to comment3, this is not a bug.  qemu destination is expecting a qemu migration stream.  we send a different stream, and qemu decides that it don't know how to handle it, and just exits.

Works as designed, no?