Bug 1215087

Summary: migration: 7.2->earlier; serial compatibility
Product: Red Hat Enterprise Linux 7 Reporter: Dr. David Alan Gilbert <dgilbert>
Component: qemu-kvm-rhevAssignee: Dr. David Alan Gilbert <dgilbert>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.2CC: dgilbert, hhuang, huding, juzhang, mrezanin, qzhang, virt-maint, xfu
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.3.0-6.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-12-04 16:39:55 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: 1174920    

Description Dr. David Alan Gilbert 2015-04-24 09:28:42 UTC
Description of problem:
Amit's checker picked up differences in vmstate for serial; need to look what to do with them.

See bz 1174920

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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 4 Miroslav Rezanina 2015-06-26 11:20:07 UTC
Fix included in qemu-kvm-rhev-2.3.0-6.el7

Comment 8 huiqingding 2015-07-02 09:06:06 UTC
I cannot reproduce this bug, when do migration 7.2 -> 7.1 with serial device, hit bz 1209300. The detailed reproduce steps are as following:
RHEL7.1 host:
qemu-kvm-rhev-2.1.2-23.el7_1.4.x86_64
kernel-3.10.0-229.7.2.el7.x86_64

RHEL7.2 host:
qemu-kvm-rhev-2.2.0-8.el7.x86_64
kernel-3.10.0-287.el7.x86_64

Reproduce steps:
1. boot a guest on RHEL7.2 host:
# /usr/libexec/qemu-kvm -cpu Opteron_G3 -machine pc-i440fx-rhel7.1.0 -drive file=/mnt/win2012r2.qcow2,if=none,cache=none,media=disk,format=qcow2,id=disk1 -device ide-drive,id=ide0-0-0,drive=disk1,bootindex=0 -monitor stdio -netdev tap,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=52:54:06:7f:f9:56,bus=pci.0,addr=0x4 -boot menu=on -vnc :0 -vga cirrus -chardev file,path=/root/console.log,id=serial1 -device isa-serial,chardev=serial1,id=s1 -usb -device usb-tablet,id=tablet1 -smp 2,cores=2,threads=1,sockets=1 -m 2G -enable-kvm -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -device virtio-serial-pci,id=virtio-serial0,max_ports=31,bus=pci.0,addr=0x6 -chardev socket,path=/tmp/tt0,server,nowait,id=chardev0 -device virtserialport,chardev=chardev0,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port0

2. boot the guest on dst RHEL7.1 host using "-incoming tcp:0:5800"

3. do migration
(qemu) migrate -d tcp:10.66.106.84:5800

Actual results:
qemu-kvm on dst host quits with the error info:
qemu: warning: error while loading state for instance 0x1 of device 'apic'

Comment 9 Dr. David Alan Gilbert 2015-07-02 09:08:28 UTC
The 2.2.x packages have other problems; don't even try to compare with those.

Comment 10 huiqingding 2015-07-02 09:14:29 UTC
I test the fixed version qemu-kvm-rhev-2.3.0-6.el7.

RHEL7.1 host:
qemu-kvm-rhev-2.1.2-23.el7_1.4.x86_64
kernel-3.10.0-229.7.2.el7.x86_64

RHEL7.2 host:
qemu-kvm-rhev-2.3.0-6.el7.x86_64
kernel-3.10.0-287.el7.x86_64

Test steps:
1. boot a win2012r2 guest with a virtio-serial device on RHEL7.2 host:
# /usr/libexec/qemu-kvm -cpu Opteron_G3 -machine pc-i440fx-rhel7.1.0 -drive file=/mnt/win2012r2.qcow2,if=none,cache=none,media=disk,format=qcow2,id=disk1 -device ide-drive,id=ide0-0-0,drive=disk1,bootindex=0 -monitor stdio -netdev tap,id=hostnet0 -device e1000,netdev=hostnet0,id=net0,mac=52:54:06:7f:f9:56,bus=pci.0,addr=0x4 -boot menu=on -vnc :0 -vga cirrus -chardev file,path=/root/console.log,id=serial1 -device isa-serial,chardev=serial1,id=s1 -usb -device usb-tablet,id=tablet1 -smp 2,cores=2,threads=1,sockets=1 -m 2G -enable-kvm -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -device virtio-serial-pci,id=virtio-serial0,max_ports=31,bus=pci.0,addr=0x6 -chardev socket,path=/tmp/tt0,server,nowait,id=chardev0 -device virtserialport,chardev=chardev0,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port0

2. boot the guest on dst RHEL7.1 host using "-incoming tcp:0:5800"

3. Feed a lot data to the serial device on src RHEL7.2 host:
# cat a.txt | nc -U /tmp/tt0

4. Do same operation on dst RHEL7.1 host:
# cat a.txt | nc -U /tmp/tt0

5. Do migration from 7.2 to 7.1
(qemu) migrate -d tcp:10.66.106.84:5800

Actual results:
after step5, the migation can be finished. after migration, I can do ping operation inside guest and can restart/shutdown the guest.

Comment 13 juzhang 2015-07-20 09:11:45 UTC
Hi Huding,

Could you have a look comment12?

Best Regards,
Junyi

Comment 16 huiqingding 2015-08-18 02:37:41 UTC
Thanks Dave for the feedback.

Reproduce this bug using the following version:
RHEL7.2 host:
qemu-kvm-rhev-2.3.0-5.el7.x86_64
kenrel-3.10.0-304.el7.x86_64

RHEL7.1 host:
qemu-kvm-rhev-2.1.2-23.el7_1.8.x86_64
kernel-3.10.0-300.el7.x86_64

1. boot a RHEL7.2 guest on RHEL7.2 host with a chardev of telnet connection
# /usr/libexec/qemu-kvm -M pc-i440fx-rhel7.1.0 -cpu SandyBridge -enable-kvm -m 2G -smp 4 -name rhel7.0 -rtc base=localtime,clock=host,driftfix=slew -uuid 6afa5f93-2d4f-420f-81c6-e5fdddbd1c83 -spice disable-ticketing,port=5931 -monitor stdio -device virtio-scsi-pci,bus=pci.0,addr=0x4,id=scsi0 -drive file=/home/rhel7.2.qcow2_bak,if=none,id=drive-scsi0-0-0,media=disk,cache=none,format=qcow2,werror=stop,rerror=stop,aio=native -device scsi-hd,drive=drive-scsi0-0-0,bus=scsi0.0,scsi-id=0,lun=0,id=sluo,bootindex=1 -qmp tcp:0:4444,server,nowait -boot menu=on -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=4e:63:28:bc:b1:25 -chardev socket,id=charserial1,host=127.0.0.1,port=4555,telnet,server,nowait -device isa-serial,chardev=charserial1,id=serial1

2. boot the guest in RHEL7.1 host with "-incoming tcp:0:5800"

3. before migation, feed the serial lots of data on src host:
# dd if=/dev/zero | nc 127.0.0.1 4555

4. inside guest, read data from serial
# od /dev/ttyS0 &
# od /dev/ttyS1 &

5. do migration
(qemu) migrate -d tcp:10.66.9.116:5800

Actual results:
migraion is failed, qemu-kvm on dst host quits with error info:
(qemu) qemu: warning: error while loading state for instance 0x0 of device 'serial'
qemu-kvm: load of migration failed: No such file or directory

Comment 17 huiqingding 2015-08-20 13:44:18 UTC
Test this bug using the following version:
RHEL7.2 host:
qemu-kvm-rhev-2.3.0-18.el7.x86_64
kenrel-3.10.0-306.el7.x86_64

RHEL7.1 host:
qemu-kvm-rhev-2.1.2-23.el7_1.8.x86_64
kernel-3.10.0-229.13.1.el7.x86_64

Do the same test as comment #16, the result is pass, migration can be finished normally.

I also test "-M rhel7.0.0" and "-M rhel6.6.0", the result is pass too.

Comment 18 juzhang 2015-08-24 02:44:21 UTC
According to comment16 and comment17, set this issue as verified.

Best Regards,
Junyi

Comment 20 errata-xmlrpc 2015-12-04 16:39:55 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/RHBA-2015-2546.html