Bug 1121025

Summary: Migration: acpi/tables size mismatch
Product: Red Hat Enterprise Linux 7 Reporter: Dr. David Alan Gilbert <dgilbert>
Component: qemu-kvm-rhevAssignee: Igor Mammedov <imammedo>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.1CC: dgilbert, hhuang, huding, imammedo, juzhang, michen, mrezanin, ovasik, qzhang, shuang, virt-maint, xfu
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.1.2-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 09:48:25 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: 1118665    

Description Dr. David Alan Gilbert 2014-07-18 08:15:35 UTC
Description of problem:
We're seeing a mismatch in the size of /rom@etc/acpi/tables between 7.0 and 2.1 based world.  It's going over the next 4k boundary and so getting rejected by the migration.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 3 Igor Mammedov 2014-11-03 19:34:22 UTC
we should retest it with latest emu-kvm-rhev, it should have fixes after rebase to 2.1.2.

Comment 9 huiqingding 2014-11-28 07:45:36 UTC
Reproduce this bug using the following version:
SRC RHEL7.0 host:
kernel-3.10.0-123.9.1.el7.x86_64
qemu-kvm-rhev-1.5.3-60.el7_0.10.x86_64

DST RHEL7.1 host:
kernel-3.10.0-145.el7.x86_64
qemu-kvm-rhev-2.1.0-1.el7.x86_64

Steps to Reproduce:
1. boot a RHEL7.1 guest on SRC RHEL7.0 host:
# /usr/libexec/qemu-kvm -cpu Opteron_G1,enforce \
-enable-kvm  -m 4096 -realtime mlock=off -smp 4,sockets=2,cores=2,threads=1,maxcpus=160 -numa node,cpus=0 \
-numa node,cpus=1 -numa node,cpus=2 -numa node,cpus=3 \
-nodefconfig -nodefaults \
-global PIIX4_PM.disable_s3=0 \
-global PIIX4_PM.disable_s4=0 \
-global ide-drive.physical_block_size=4096 \
-global ide-drive.logical_block_size=4096 \
-global virtio-blk-pci.physical_block_size=512 \
-global virtio-blk-pci.logical_block_size=512 \
-boot order=cdn,once=n,menu=on,strict=on,reboot-timeout=60000 -k en-us \
-soundhw ac97 \
-device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x5,indirect_desc=on,event_idx=on,multifunction=on,rombar=100 \
-monitor stdio \
-name test-all-qemu-kvm-option -uuid `uuidgen` \
-drive file=/mnt/virtio-blk-disk,if=none,id=drive-virtio-disk,format=raw,cache=none,aio=native,werror=stop,rerror=stop,media=disk,snapshot=off,bus=1,unit=1 \
-device virtio-blk-pci,scsi=off,drive=drive-virtio-disk,id=virtio-disk,bus=pci.0,addr=0x7,physical_block_size=512,logical_block_size=512,multifunction=on,scsi=on,event_idx=on,indirect_desc=on,vectors=16,x-data-plane=off,ioeventfd=on,serial=fuxc,discard_granularity=1,min_io_size=4096,opt_io_size=4096 \
-usbdevice tablet -usbdevice mouse  \
-netdev tap,id=hostnet0,vhost=on,id=hostnet0,script=/etc/qemu-ifup \
-device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=c2:9a:2f:9c:de:10,bus=pci.0,addr=0x9,multifunction=on,status=on,gso=on,ioeventfd=on,vectors=8,indirect_desc=off,event_idx=off,guest_tso4=off,guest_tso6=on,guest_ecn=off,guest_ufo=on,host_tso4=off,host_tso6=on,host_ecn=on,mrg_rxbuf=off,ctrl_vq=on,host_ufo=on,mrg_rxbuf=on,ctrl_rx=on,ctrl_vlan=on,ctrl_rx_extra=on,ctrl_mac_addr=on \
-netdev tap,id=hostnet1,vhost=off,script=/etc/qemu-ifup  \
-device e1000,netdev=hostnet1,id=virtio-net-pci1,mac=1a:d9:71:4a:35:a9,bus=pci.0,addr=0xa,multifunction=off \
-netdev tap,id=hostnet2,vhost=off,script=/etc/qemu-ifup \
-device rtl8139,netdev=hostnet2,id=virtio-net-pci2,mac=22:6f:4e:8f:62:21,bus=pci.0,addr=0xb,multifunction=off \
-serial unix:/tmp/monitor2,server,nowait \
-rtc base=utc -no-shutdown \
-drive file=/mnt/ide-disk,if=none,id=drive-data-disk,format=raw,cache=none,aio=native,werror=stop,rerror=stop,copy-on-read=off,serial=fux-ide,media=disk \
-device ide-drive,drive=drive-data-disk,id=system-disk,logical_block_size=512,physical_block_size=512,min_io_size=32,opt_io_size=64,discard_granularity=512,ver=fuxc-ver,bus=ide.0,unit=0  \
-chardev tty,id=serial1,path=/dev/ttyS0 \
-device isa-serial,chardev=serial1 \
-chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait  \
-chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait \
-device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0 \
-chardev file,id=channel3,path=/mnt/helloworld1.txt \
-device virtserialport,chardev=channel3,name=com.redhat.rhevm.vdsm1,bus=virtio-serial0.0,id=port1,nr=1 \
-chardev socket,id=isa-serial-1,path=/tmp/isa-serial-1,server,nowait \
-device isa-serial,chardev=isa-serial-1 -global pvpanic.ioport=0x0505 \
-machine pc-i440fx-rhel7.0.0,dump-guest-core=off \
-drive file=/mnt/en_windows_7_ultimate_with_sp1_x86_dvd_u_677460.iso,if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw \
-device ide-drive,bus=ide.1,unit=1,drive=drive-ide0-1-0,id=ide0-1-0,logical_block_size=512,physical_block_size=512,min_io_size=32,opt_io_size=64,discard_granularity=512,unit=1,ver=fuxc-ver-cdrom,bus=ide.0,unit=1 \
-drive file=/mnt/rhel7_1_1113.qcow2,if=none,id=drive-scsi-disk,format=qcow2,cache=writethrough,werror=stop,rerror=stop \
-device virtio-scsi-pci,id=scsi0,addr=0x13,vectors=16,indirect_desc=on,event_idx=off,hotplug=on,param_change=on,num_queues=1,max_sectors=512,cmd_per_lun=16,multifunction=on,rombar=64 \
-device scsi-hd,drive=drive-scsi-disk,bus=scsi0.0,id=data-disk2,bootindex=1 \
-device sga -spice port=5901,password=redhat-vga,disable-ticketing -vga qxl -global qxl-vga.vram_size=33554432 \
-device intel-hda,id=sound0,bus=pci.0 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 \
-chardev socket,path=/tmp/foo,server,nowait,id=foo \
-drive file=/usr/share/virtio-win/virtio-win_amd64.vfd,if=none,id=drive-fdc0-0-0,readonly=on,format=raw \
-global isa-fdc.driveA=drive-fdc0-0-0 \
-device ich9-usb-uhci6,id=uhci6 \
-device usb-kbd,id=kdb0,bus=uhci6.0 \
-device ich9-usb-uhci5,id=uhci5 \
-device usb-mouse,id=mouse0,bus=uhci5.0 \
-device ich9-usb-uhci4,id=uhci4 \
-device usb-tablet,id=tablet0,bus=uhci4.0 \
-device nec-usb-xhci,id=xhci \
-device usb-bot,id=bot1,bus=xhci.0 \
-drive file=/mnt/driver.iso,if=none,id=usb-cdrom1,format=raw \
-device scsi-cd,bus=bot1.0,scsi-id=0,lun=1,drive=usb-cdrom1,id=usb-cdrom1 \
-drive file=/mnt/bot-disk1,id=usb-disk1,if=none,format=qcow2 \
-device scsi-hd,bus=bot1.0,scsi-id=0,lun=0,drive=usb-disk1,id=usb-disk1 \
-device usb-ehci,id=ehci \
-device usb-bot,id=bot2,bus=ehci.0 \
-drive file=/mnt/driver.iso,if=none,id=usb-cdrom2,format=raw \
-device scsi-cd,bus=bot2.0,scsi-id=0,lun=1,drive=usb-cdrom2,id=usb-cdrom2 \
-drive file=/mnt/bot-disk2,id=usb-disk2,if=none,format=qcow2 \
-device scsi-hd,bus=bot2.0,scsi-id=0,lun=0,drive=usb-disk2,id=usb-disk2 \
-device piix3-usb-uhci,id=usb,bus=pci.0 \
-device usb-tablet \
-device usb-bot,id=bot3,bus=usb.0 \
-drive file=/mnt/driver.iso,if=none,id=usb-cdrom3,format=raw \
-device scsi-cd,bus=bot3.0,scsi-id=0,lun=1,drive=usb-cdrom3,id=usb-cdrom3 \
-drive file=/mnt/bot-disk3,id=usb-disk3,if=none,format=qcow2 \
-device scsi-hd,bus=bot3.0,scsi-id=0,lun=0,drive=usb-disk3,id=usb-disk3 \
-device ich9-usb-uhci3,id=uhci \
-device usb-storage,drive=drive-usb-0,id=usb-0,removable=on,bus=uhci.0,port=1 \
-drive file=/mnt/usb-uhci,if=none,id=drive-usb-0,media=disk,format=qcow2 \
-device ich9-usb-ehci1,id=ehci1 \
-device usb-storage,drive=drive-usb-1,id=usb-1,removable=on,bus=ehci1.0,port=1 \
-drive file=/mnt/usb-ehci,if=none,id=drive-usb-1,media=disk,format=qcow2 \
-device nec-usb-xhci,id=xhci1 \
-device usb-storage,drive=drive-usb-2,id=usb-2,removable=on,bus=xhci1.0,port=1 \
-drive file=/mnt/usb-xhci,if=none,id=drive-usb-2,media=disk,format=qcow2 \
-cdrom /mnt/driver.iso \
-watchdog ib700 -watchdog-action reset \

2. boot the guest on DST RHEL7.1 host and add "-incoming tcp:0:5800"

3. do migration 
(qemu) migrate -d tcp:<DST_IP>:5800

Results:
after step3, the migration is failed and the qemu-kvm of DST host quits with the error info:
(qemu) qemu-kvm: Length mismatch: /rom@etc/acpi/tables: 7000 in != 20000
Unknown savevm section type 58
qemu-kvm: load of migration failed: Invalid argument

Comment 10 huiqingding 2014-11-28 08:17:40 UTC
Test this bug using the following version:
SRC RHEL7.0 host:
kernel-3.10.0-123.9.1.el7.x86_64
qemu-kvm-rhev-1.5.3-60.el7_0.10.x86_64

DST RHEL7.1 host:
kernel-3.10.0-211.el7.x86_64
qemu-kvm-rhev-2.1.2-13.el7.x86_64

Use the same steps of comment 9, do ping-pong migration of RHEL7.1 guest for 5 times, the migarion can be finished normally.

Comment 11 huiqingding 2014-11-28 09:15:04 UTC
Test this bug using the following version:
SRC RHEL7.0 host:
kernel-3.10.0-123.17.1.el7.x86_64
qemu-kvm-rhev-1.5.3-60.el7_0.11.x86_64

DST RHEL7.1 host:
kernel-3.10.0-211.el7.x86_64
qemu-kvm-rhev-2.1.2-13.el7.x86_64

Use the same steps of comment 9, do ping-pong migration of win8.1-32 guest for 5 times, the migarion can be finished normally.

Comment 13 huiqingding 2015-01-21 07:06:07 UTC
Re-test this bug using the following version:
SRC RHEL7.0 host:
kernel-3.10.0-123.19.1.el7.x86_64
qemu-kvm-rhev-1.5.3-60.el7_0.11.x86_64

DST RHEL7.1 host:
kernel-3.10.0-224.el7.x86_64
qemu-kvm-rhev-2.1.2-20.el7.x86_64

Use the same steps of comment 9, do ping-pong migration of RHEL7.1 guest for 5 times, the migarion can be finished normally.

Comment 15 errata-xmlrpc 2015-03-05 09:48:25 UTC
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/RHSA-2015-0624.html