Bug 2081981

Summary: input element with non-virtio bus should fail to accept the model attribute
Product: Red Hat Enterprise Linux 9 Reporter: Lili Zhu <lizhu>
Component: libvirtAssignee: Michal Privoznik <mprivozn>
libvirt sub component: General QA Contact: Lili Zhu <lizhu>
Status: CLOSED ERRATA Docs Contact:
Severity: unspecified    
Priority: unspecified CC: jdenemar, lmen, mprivozn, virt-maint, xuzhang
Version: 9.1Keywords: Triaged, Upstream
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-8.4.0-1.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-11-15 10:04:06 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: 8.4.0
Embargoed:

Description Lili Zhu 2022-05-05 07:08:05 UTC
Description of problem:
input element with non-virtio bus should fail to accept the model attribute 

Version-Release number of selected component (if applicable):
libvirt-8.2.0-1.el9.x86_64

How reproducible:
100%

Steps to Reproduce:
1. prepare a guest with the following xml
   <input type='tablet' bus='usb' model='virtio-transitional'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2' model='virtio-transitional'/>
    <input type='keyboard' bus='usb' model='virtio-transitional'>
      <address type='usb' bus='0' port='2'/>
    </input>

2. define the guest
# virsh define avocado-vt-vm1.xml 
Domain 'avocado-vt-vm1' defined from avocado-vt-vm1.xml

3.start the guest
# virsh start avocado-vt-vm1 
Domain 'avocado-vt-vm1' started

4. check the qemu cmd line
# ps aux |grep qemu |grep input
...
-device {"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"} -device {"driver":"usb-kbd","id":"input2","bus":"usb.0","port":"2"} 
...

Expected results:
Should report error like:
error: unsupported configuration: input model 'virtio-transitional'/'virtio-non-transitional'/'virtio' not supported for bus 'ps2'/'usb'

Additional info:

Comment 1 Michal Privoznik 2022-05-26 13:23:36 UTC
Patches proposed on the list:

https://listman.redhat.com/archives/libvir-list/2022-May/231852.html

Comment 2 Michal Privoznik 2022-05-30 14:32:43 UTC
Merged upstream as:

b4161c2d42 virDomainInputDefValidate: Validate model
bded22e3a7 virDomainInputDefValidate: Reformat

v8.4.0-rc2-2-gb4161c2d42

Comment 3 Lili Zhu 2022-06-07 03:09:39 UTC
Preverify this bug with:
libvirt-8.5.0-1.fc35.x86_64

1. Edit the guest xml with the following three xml snippet respectively
 <input type='tablet' bus='usb' model='virtio-transitional'>
      <address type='usb' bus='0' port='1'/>
    </input>

    <input type='mouse' bus='ps2' model='virtio-transitional'/>

    <input type='keyboard' bus='usb' model='virtio-transitional'>
      <address type='usb' bus='0' port='2'/>
    </input>


2. All Will report the following error
# virsh edit rhel 
error: unsupported configuration: only bus 'virtio' is supported for input model 'virtio-transitional'
Failed. Try again? [y,n,i,f,?]: 

Mark the bug as Tested.

Comment 6 Lili Zhu 2022-06-21 08:22:39 UTC
Verify this bug with:
libvirt-8.4.0-2.el9.x86_64


1. Edit the guest xml with the following three xml snippet respectively
 <input type='tablet' bus='usb' model='virtio-transitional'>
      <address type='usb' bus='0' port='1'/>
    </input>

    <input type='mouse' bus='ps2' model='virtio-transitional'/>

    <input type='mouse' bus='usb' model='virtio-transitional'>
      <address type='usb' bus='0' port='2'/>
    </input>

    <input type='keyboard' bus='usb' model='virtio-transitional'>
      <address type='usb' bus='0' port='2'/>
    </input>

    <input type='keyboard' bus='usb' model='virtio-transitional'/>



2. All Will report the following error
# virsh edit rhel 
error: unsupported configuration: only bus 'virtio' is supported for input model 'virtio-transitional'
Failed. Try again? [y,n,i,f,?]: 

Mark the bug as verified.

Comment 8 errata-xmlrpc 2022-11-15 10:04:06 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 (Low: libvirt security, bug fix, and enhancement update), 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-2022:8003