Bug 1554876
Summary: | Device alias for input device do not take effect when hot-plugging | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | jiyan <jiyan> |
Component: | libvirt | Assignee: | Michal Privoznik <mprivozn> |
Status: | CLOSED ERRATA | QA Contact: | jiyan <jiyan> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 7.5 | CC: | dyuan, jdenemar, jiyan, mprivozn, xuzhang |
Target Milestone: | rc | Keywords: | Upstream |
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | libvirt-4.3.0-1.el7 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2018-10-30 09:53:14 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: |
Description
jiyan
2018-03-13 13:54:13 UTC
I've just pushed the patch upstream: commit a02a52751f72a1abac7d1024ecc3fcdb8b61a050 Author: Michal Privoznik <mprivozn> AuthorDate: Tue Mar 13 13:01:11 2018 +0100 Commit: Michal Privoznik <mprivozn> CommitDate: Tue Mar 13 15:17:19 2018 +0100 qemuAssignDeviceInputAlias: Be tolerant to pre-existent alias https://bugzilla.redhat.com/show_bug.cgi?id=1554876 This is missing in 6bc4a371cf and therefore we are effectively overwriting user provided aliases for <input/> devices. Signed-off-by: Michal Privoznik <mprivozn> v4.1.0-117-ga02a52751 Verified this bug in 'libvirt-4.3.0-1.el7.x86_64' Version: libvirt-4.3.0-1.el7.x86_64 qemu-kvm-rhev-2.10.0-21.el7_5.3.x86_64 kernel-3.10.0-893.el7.x86_64 Steps: 1. Prepare a shutdown VM with default configuration for input device, and the following 5 files # virsh domstate test1 shut off # virsh dumpxml test1 |grep "<input" <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> # cat *.xml <input type='passthrough' bus='virtio'> <source evdev='/dev/input/event0'/> <alias name='ua-cf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> </input> <input type='keyboard' bus='usb'> <alias name='ua-usbkeyboardcf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> </input> <input type='mouse' bus='usb'> <alias name='ua-usbmousecf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> </input> <input type='keyboard' bus='virtio'> <alias name='ua-virtiokeyboardcf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> </input> <input type='mouse' bus='virtio'> <alias name='ua-virtiomousecf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> </input> 2. Cold-plug the 5 files above to VM -- Cold-plugging cmd returns successful # for i in *.xml; do virsh attach-device test1 $i --config; done Device attached successfully Device attached successfully Device attached successfully Device attached successfully Device attached successfully 3. Checking inactive xml whether the alias still exists (VM is down) -- exists # virsh dumpxml test1 |grep "<input" -A3 <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <input type='passthrough' bus='virtio'> <source evdev='/dev/input/event0'/> <alias name='ua-cf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </input> <input type='keyboard' bus='usb'> <alias name='ua-usbkeyboardcf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='usb' bus='0' port='3'/> </input> <input type='mouse' bus='usb'> <alias name='ua-usbmousecf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='usb' bus='0' port='4'/> </input> <input type='keyboard' bus='virtio'> <alias name='ua-virtiokeyboardcf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </input> <input type='mouse' bus='virtio'> <alias name='ua-virtiomousecf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </input> 4. Start the VM, after running, Checking inactive xml whether the alias still exists (VM is up) -- exists # virsh dumpxml test1 |grep "<input" -A3 <input type='mouse' bus='ps2'> <alias name='input0'/> </input> <input type='keyboard' bus='ps2'> <alias name='input1'/> </input> <input type='passthrough' bus='virtio'> <source evdev='/dev/input/event0'/> <alias name='ua-cf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </input> <input type='keyboard' bus='usb'> <alias name='ua-usbkeyboardcf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='usb' bus='0' port='3'/> </input> <input type='mouse' bus='usb'> <alias name='ua-usbmousecf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='usb' bus='0' port='4'/> </input> <input type='keyboard' bus='virtio'> <alias name='ua-virtiokeyboardcf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </input> <input type='mouse' bus='virtio'> <alias name='ua-virtiomousecf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </input> 5. Hot-unplug the 5 files in VM -- Hot-plugging cmd returns successful and no related xml info exists in active xml # for i in *.xml; do virsh detach-device test1 $i; done Device detached successfully Device detached successfully Device detached successfully Device detached successfully Device detached successfully # virsh dumpxml test1 |grep "<input" -A3 <input type='mouse' bus='ps2'> <alias name='input0'/> </input> <input type='keyboard' bus='ps2'> <alias name='input1'/> </input> 6. Hot-plug the 5 files to VM and check whether the alias still exists -- exists # for i in *.xml; do virsh attach-device test1 $i; done Device attached successfully Device attached successfully Device attached successfully Device attached successfully Device attached successfully # virsh dumpxml test1 |grep "<input" -A3 <input type='mouse' bus='ps2'> <alias name='input0'/> </input> <input type='keyboard' bus='ps2'> <alias name='input1'/> </input> <input type='passthrough' bus='virtio'> <source evdev='/dev/input/event0'/> <alias name='ua-cf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </input> <input type='keyboard' bus='usb'> <alias name='ua-usbkeyboardcf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='usb' bus='0' port='3'/> </input> <input type='mouse' bus='usb'> <alias name='ua-usbmousecf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='usb' bus='0' port='4'/> </input> <input type='keyboard' bus='virtio'> <alias name='ua-virtiokeyboardcf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/> </input> <input type='mouse' bus='virtio'> <alias name='ua-virtiomousecf99c3a1-ed5c-4d68-898b-0d45bdb6913d'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/> </input> All the results are as expected, move 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://access.redhat.com/errata/RHSA-2018:3113 |