RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1178584 - Wrong error message always show after tried to add non-qxl as the second video device.
Summary: Wrong error message always show after tried to add non-qxl as the second vide...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: virt-manager
Version: 7.1
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: ---
Assignee: Pavel Hrdina
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-01-05 02:07 UTC by Ye Lingfei
Modified: 2015-11-19 05:23 UTC (History)
5 users (show)

Fixed In Version: virt-manager-1.2.0-1-el7
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2015-11-19 05:23:16 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2015:2206 0 normal SHIPPED_LIVE virt-manager bug fix and enhancement update 2015-11-19 08:17:29 UTC

Description Ye Lingfei 2015-01-05 02:07:45 UTC
Description of problem:
Wrong error message always show after tried to add non-qxl as the second video device.

Version-Release number of selected component (if applicable):
virt-manager-1.1.0-10.el7.noarch

How reproducible:
100%

Steps to Reproduce:
1.Launch virt-manager on your host: #virt-manager.
2.Prepare a rhel7.1 guest with a 'qxl' video device.
3.Open the guest and turn to "Hardware Details" page, and then click "Add Hardware"->choose "Video"-> add another video device which is not 'qxl', 
eg: cirrus-> click 'Finish'.
4.An error massage shows up after adding a 'cirrus' video device, and close the error info window and click 'Cancel' on 'Add New Virtual Hardware' window.
5.Click "Add Hardware" to add a 'qxl' video device. 

Actual results:
After step 3, the error message shows up:
Error adding device: unsupported configuration: non-primary video device must be type of 'qxl'

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/addhardware.py", line 1481, in add_device
    self.vm.add_device(self._dev)
  File "/usr/share/virt-manager/virtManager/domain.py", line 573, in add_device
    self.redefine_cached()
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 222, in redefine_cached
    self._redefine_xml(xml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 247, in _redefine_xml
    return self._redefine_helper(origxml, newxml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 239, in _redefine_helper
    self._define(newxml)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1042, in _define
    self.conn.define_domain(newxml)
  File "/usr/share/virt-manager/virtManager/connection.py", line 694, in define_domain
    return self._backend.defineXML(xml)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3442, in defineXML
    if ret is None:raise libvirtError('virDomainDefineXML() failed', conn=self)
libvirtError: unsupported configuration: non-primary video device must be type of 'qxl'

After step 5, the same error message shows up again.


Expected results:
After step 3, the error message shows up.
After step 5, the 'qxl' video device can be added successfully.


Additional info:
1.It goes the same with situation where the original video device is other type, eg: cirrus,VGA
2.The debug information is as follows:
........................................................

[Wed, 31 Dec 2014 17:33:32 virt-manager 6621] DEBUG (connection:1234) interface=lo added
[Wed, 31 Dec 2014 17:33:32 virt-manager 6621] DEBUG (connection:856) mediadev=block_sr0_HL_DT_ST_DVDRAM_GU10N_M16A5Q25803 added
[Wed, 31 Dec 2014 17:33:32 virt-manager 6621] DEBUG (connection:856) mediadev=block_sr0_HL_DT_ST_DVDRAM_GU10N_M16A5Q25803 added
[Wed, 31 Dec 2014 17:33:36 virt-manager 6621] DEBUG (details:746) Showing VM details: <vmmDomain object at 0x2e28870 (virtManager+domain+vmmDomain at 0x286f0e0)>
[Wed, 31 Dec 2014 17:33:37 virt-manager 6621] DEBUG (engine:356) window counter incremented to 2
[Wed, 31 Dec 2014 17:33:42 virt-manager 6621] DEBUG (addhardware:126) Showing addhw
[Wed, 31 Dec 2014 17:33:46 virt-manager 6621] DEBUG (addhardware:1428) Running setup for device=<virtinst.devicevideo.VirtualVideoDevice object at 0x38df090>
[Wed, 31 Dec 2014 17:33:46 virt-manager 6621] DEBUG (addhardware:1430) Setup complete
[Wed, 31 Dec 2014 17:33:46 virt-manager 6621] DEBUG (addhardware:1434) Adding device:
<video>
  <model type="cirrus"/>
</video>

[Wed, 31 Dec 2014 17:33:46 virt-manager 6621] DEBUG (libvirtobject:71) Redefining <vmmDomain name=rhel7.11204> with XML diff:
--- Original XML
+++ New XML
@@ -103,5 +103,8 @@
     <memballoon model="virtio">
       <address type="pci" domain="0x0000" bus="0x00" slot="0x07" function="0x0"/>
     </memballoon>
+    <video>
+      <model type="cirrus"/>
+    </video>
   </devices>
 </domain>

[Wed, 31 Dec 2014 17:33:46 virt-manager 6621] DEBUG (error:80) error dialog message:
summary=Error adding device: unsupported configuration: non-primary video device must be type of 'qxl'
details=Error adding device: unsupported configuration: non-primary video device must be type of 'qxl'

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/addhardware.py", line 1481, in add_device
    self.vm.add_device(self._dev)
  File "/usr/share/virt-manager/virtManager/domain.py", line 573, in add_device
    self.redefine_cached()
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 222, in redefine_cached
    self._redefine_xml(xml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 247, in _redefine_xml
    return self._redefine_helper(origxml, newxml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 239, in _redefine_helper
    self._define(newxml)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1042, in _define
    self.conn.define_domain(newxml)
  File "/usr/share/virt-manager/virtManager/connection.py", line 694, in define_domain
    return self._backend.defineXML(xml)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3442, in defineXML
    if ret is None:raise libvirtError('virDomainDefineXML() failed', conn=self)
libvirtError: unsupported configuration: non-primary video device must be type of 'qxl'
[Wed, 31 Dec 2014 17:33:48 virt-manager 6621] DEBUG (addhardware:135) Closing addhw
[Wed, 31 Dec 2014 17:33:50 virt-manager 6621] DEBUG (addhardware:126) Showing addhw
[Wed, 31 Dec 2014 17:33:57 virt-manager 6621] DEBUG (addhardware:1428) Running setup for device=<virtinst.devicevideo.VirtualVideoDevice object at 0x3c92ed0>
[Wed, 31 Dec 2014 17:33:57 virt-manager 6621] DEBUG (addhardware:1430) Setup complete
[Wed, 31 Dec 2014 17:33:57 virt-manager 6621] DEBUG (addhardware:1434) Adding device:
<video>
  <model type="qxl"/>
</video>

[Wed, 31 Dec 2014 17:33:57 virt-manager 6621] DEBUG (libvirtobject:71) Redefining <vmmDomain name=rhel7.11204> with XML diff:
--- Original XML
+++ New XML
@@ -103,5 +103,11 @@
     <memballoon model="virtio">
       <address type="pci" domain="0x0000" bus="0x00" slot="0x07" function="0x0"/>
     </memballoon>
+    <video>
+      <model type="cirrus"/>
+    </video>
+    <video>
+      <model type="qxl"/>
+    </video>
   </devices>
 </domain>

[Wed, 31 Dec 2014 17:33:57 virt-manager 6621] DEBUG (error:80) error dialog message:
summary=Error adding device: unsupported configuration: non-primary video device must be type of 'qxl'
details=Error adding device: unsupported configuration: non-primary video device must be type of 'qxl'

Traceback (most recent call last):
  File "/usr/share/virt-manager/virtManager/addhardware.py", line 1481, in add_device
    self.vm.add_device(self._dev)
  File "/usr/share/virt-manager/virtManager/domain.py", line 573, in add_device
    self.redefine_cached()
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 222, in redefine_cached
    self._redefine_xml(xml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 247, in _redefine_xml
    return self._redefine_helper(origxml, newxml)
  File "/usr/share/virt-manager/virtManager/libvirtobject.py", line 239, in _redefine_helper
    self._define(newxml)
  File "/usr/share/virt-manager/virtManager/domain.py", line 1042, in _define
    self.conn.define_domain(newxml)
  File "/usr/share/virt-manager/virtManager/connection.py", line 694, in define_domain
    return self._backend.defineXML(xml)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 3442, in defineXML
    if ret is None:raise libvirtError('virDomainDefineXML() failed', conn=self)
libvirtError: unsupported configuration: non-primary video device must be type of 'qxl'
[Wed, 31 Dec 2014 17:33:59 virt-manager 6621] DEBUG (addhardware:135) Closing addh

Comment 2 Pavel Hrdina 2015-06-19 13:26:16 UTC
Upstream commit:

commit 1c63c2b0d9029b794793ebaa456bf2b139b5d77c
Author: Cole Robinson <crobinso>
Date:   Thu Apr 9 13:01:38 2015 -0400

    libvirtobject: Invalidate cache if redefine fails

Comment 3 Xiaodai Wang 2015-06-25 05:50:52 UTC
I can reproduce this bug with package:
virt-manager-1.1.0-10.el7.noarch

Steps:
1.Launch virt-manager on your host: #virt-manager.
2.Prepare a rhel7.1 guest with a 'qxl' video device.
3.Open the guest and turn to "Hardware Details" page, and then click "Add Hardware"->choose "Video"-> add another video device which is not 'qxl', 
eg: cirrus-> click 'Finish'.
4.An error massage shows up after adding a 'cirrus' video device, and close the error info window and click 'Cancel' on 'Add New Virtual Hardware' window.
5.Click "Add Hardware" to add a 'qxl' video device. 

Result:
After step 5, the same error message shows up again.


Then try to verify with latest build:
virt-manager-1.2.1-2.el7.noarch.rpm  


Result:
After step5, the 'qxl' device can be added successfully.


According to the result above in the latest version of virt-manager, move this bug from ON_QA to VERIFIED.

Comment 5 Xiaodai Wang 2015-07-09 02:26:48 UTC
move the bug to VERIFIED based on #Comment 3.

Comment 7 errata-xmlrpc 2015-11-19 05:23:16 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-2206.html


Note You need to log in before you can comment on or make changes to this bug.