Bug 1353180
Summary: | 7.3->7.2 migration: qemu-kvm: usbredirparser: error unserialize caps mismatch | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Dr. David Alan Gilbert <dgilbert> |
Component: | qemu-kvm-rhev | Assignee: | Gerd Hoffmann <kraxel> |
Status: | CLOSED ERRATA | QA Contact: | huiqingding <huding> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 7.3 | CC: | chayang, dgilbert, hdegoede, huding, juzhang, knoel, kraxel, mrezanin, qizhu, virt-maint, xfu |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | qemu-kvm-rhev-2.6.0-16.el7 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2016-11-07 21:21:44 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: | |||
Bug Depends On: | |||
Bug Blocks: | 1289197 |
Description
Dr. David Alan Gilbert
2016-07-06 12:01:43 UTC
This is related to bz 1185167 - but does this fix us for it? It still seems right to tie the new feature to the new machine type. > I suspect the problem here is that in qemu's usbredir_create_parser we have: > #if USBREDIR_VERSION >= 0x000700 > usbredirparser_caps_set_cap(caps, usb_redir_cap_bulk_streams); > #endif > now since 7.3 seems to have the newer USBREDIR we've suddenly triggered that > code. I suspect it needs tieing to machine type (i.e. only 7.3 or newer) Yes. > but there's a lot of places that ifdef happens so I don't know what the > consequences are. Should be easy, the caps thing is there exactly so you can turn it off. And all the streams support code has both compile time (#ifdef) and runtime (cap) checks for the same reason. The only thing missing is a property so you can actually turn it off. http://git.engineering.redhat.com/git/users/ghoffman/rhel7/qemu-kvm-rhev.git/log/?h=bz1353180-usbredir-migration https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=11343436 Can you give it a try? OK, that passes my smoke test of migrating; wasn't trying to do anything usb related or streams related though. Dave Fix included in qemu-kvm-rhev-2.6.0-16.el7 Reproduce this bug using: 7.3 host: kernel-3.10.0-505.el7.x86_64 qemu-kvm-rhev-2.6.0-12.el7.x86_64 usbredir-0.7.1-1.el7.x86_64 7.2 host: kernel-3.10.0-327.37.1.el7.x86_64 qemu-kvm-rhev-2.3.0-31.el7_2.21.x86_64 usbredir-0.6-7.el7.x86_64 Reproduce steps: 1. boot a rhel7.3 guest on source 7.3 and destination 7.2 host # /usr/libexec/qemu-kvm -name guest=7.2-test,debug-threads=on -S -machine rhel6.6.0,accel=kvm,usb=off,vmport=off -cpu IvyBridge -m 2048 -realtime mlock=off -smp 2,sockets=2,cores=1,threads=1 -uuid b243112a-8767-4304-ac82-4b40a90449a3 -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-4-7.2-test/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-shutdown -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x6.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x6 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x6.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x6.0x2 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0xb -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive file=/mnt/rhel7.3.qcow2,format=qcow2,if=none,id=drive-virtio-disk0,cache=none -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1 -netdev tap,id=hostnet0,script=/etc/qemu-ifup -device e1000,netdev=hostnet0,id=net0,mac=52:54:00:ae:2d:0e,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -device usb-tablet,id=input0 -spice port=5900,disable-ticketing,seamless-migration=on -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,bus=pci.0,addr=0x2 -device AC97,id=sound0,bus=pci.0,addr=0x4 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x8 -msg timestamp=on -monitor stdio 2. do migration from 7.3 to 7.2 Results: after step2, qemu-kvm of 7.2 quits with error: 2016-09-13T09:28:50.270999Z qemu-kvm: usbredirparser: error unserialize caps mismatch 2016-09-13T09:28:50.271040Z qemu-kvm: error while loading state for instance 0x0 of device '0000:00:06.7/2/usb-redir' 2016-09-13T09:28:50.271097Z qemu-kvm: load of migration failed: Operation not permitted Verify this bug using: 7.3 host: kernel-3.10.0-505.el7.x86_64 qemu-kvm-rhev-2.6.0-24.el7.x86_64 usbredir-0.7.1-1.el7.x86_64 7.2 host: kernel-3.10.0-327.37.1.el7.x86_64 qemu-kvm-rhev-2.3.0-31.el7_2.21.x86_64 usbredir-0.6-7.el7.x86_64 after step2, migration can be finished normally. Based on comment #7, set this bug to be verified. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2016-2673.html |