Bug 1371747

Summary: Avoid migration if the destination ignoring unknown XML parts would break ABI
Product: Red Hat Enterprise Linux Advanced Virtualization Reporter: Yang Yang <yanyang>
Component: libvirtAssignee: Virtualization Maintenance <virt-maint>
Status: CLOSED WONTFIX QA Contact: Fangge Jin <fjin>
Severity: medium Docs Contact:
Priority: medium    
Version: ---CC: dyuan, fjin, hhan, jdenemar, jinqi, jsuchane, lmen, rbalakri, xuzhang, yafu, yalzhang
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-06-15 07:31:00 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:
Attachments:
Description Flags
Domain configuration xml none

Description Yang Yang 2016-08-31 02:19:47 UTC
Description of problem:
xhci usb controller with ports is used in my vm. I migrate vm from rhel7.3 to rhel7.2.
Migration gets 100% process but unexpectedly failed finally. Libvirt should
reject to migrate this vm prior to qemu-kvm rejects

Version-Release number of selected component (if applicable):
Source host:
libvirt-2.0.0-6.el7.x86_64
qemu-kvm-rhev-2.6.0-22.el7.x86_64

Target host:
libvirt-1.2.17-13.el7_2.5.x86_64
qemu-kvm-rhev-2.3.0-31.el7_2.21.x86_64

How reproducible:
100%

Steps to Reproduce:
1. start vm with xhci usb controller with ports on source host
<controller type='usb' index='1' model='nec-xhci' ports='8'>
      <alias name='usb1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </controller>

# virsh list
 Id    Name                           State
----------------------------------------------------
 7     vm-mig                         running


2. migrate vm
# virsh migrate vm-mig qemu+ssh://10.66.4.113/system --verbose --live --unsafe
root.4.113's password:
Migration: [100 %]error: operation failed: job: unexpectedly failed

Actual results:
migration failed

Expected results:
Reject to migrate vm using usb-xhci controller with ports


Additional info:
addressed vm log on target host
2016-08-29T10:08:50.236359Z qemu-kvm: error while loading state for instance 0x0 of device '0000:00:08.0/xhci'
2016-08-29T10:08:50.236486Z qemu-kvm: load of migration failed: Input/output error
2016-08-29 10:08:50.237+0000: shutting down

Comment 1 Yang Yang 2016-08-31 02:22:25 UTC
Created attachment 1196140 [details]
Domain configuration xml

Comment 2 Jiri Denemark 2017-11-22 12:54:40 UTC
We could avoid this kind of bugs by letting the destination daemon send the
XML definition it used to start QEMU process for incoming migration back to
the source daemon. Before actually starting the migration the source daemon
would check the incoming definition and its internal definition for ABI
compatibility and abort in case the two definitions are incompatible. This way
the source could detect if the destination ignored some parts of the XML
definition.

Comment 3 Peter Krempa 2018-01-03 13:57:33 UTC
*** Bug 1529472 has been marked as a duplicate of this bug. ***

Comment 4 Han Han 2020-04-14 04:00:26 UTC
For migration from RHEL8.2-AV(libvirt-6.0.0-17.module+el8.2.0+6257+0d066c28.x86_64 qemu-kvm-4.2.0-17.module+el8.2.0+6141+0f540f16.x86_64) to RHEL8.1-AV(libvirt-5.6.0-10.module+el8.1.1+5309+6d656f05.x86_64 qemu-kvm-4.1.0-23.module+el8.1.1+6238+f5d69f68.3.x86_64), these elements will be ignored by old libvirt:
1. <slices>
2. <cookies>

Comment 8 Peter Krempa 2021-03-16 09:58:30 UTC
*** Bug 1938956 has been marked as a duplicate of this bug. ***

Comment 9 RHEL Program Management 2021-06-15 07:31:00 UTC
After evaluating this issue, there are no plans to address it further or fix it in an upcoming release.  Therefore, it is being closed.  If plans change such that this issue will be fixed in an upcoming release, then the bug can be reopened.