Bug 890652

Summary: Libvirt enables vhost on a qemu that doesn't support it
Product: [Fedora] Fedora Reporter: Geert Jansen <geertj>
Component: libvirtAssignee: Libvirt Maintainers <libvirt-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 19CC: berrange, clalancette, crobinso, itamar, jforbes, jyang, laine, libvirt-maint, veillard, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-07-11 17:28:19 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
Guest XML none

Description Geert Jansen 2012-12-28 13:38:53 UTC
Created attachment 669855 [details]
Guest XML

I am using Oz to build an image on Amazon EC2. I need to use libvirt/qemu with emulation because EC2 doesn't do nested virtualization.

I'm using latest Fedora 17. I've updated Oz to the latest upstream version, all other packages are unmodified.

When building an image, Oz bails out with the following error:

Traceback (most recent call last):
  File "/usr/bin/oz-install", line 7, in <module>
    execfile(__file__)
  File "/home/ec2-user/oz/oz-install", line 146, in <module>
    libvirt_xml = guest.install(timeout, force_download)
  File "/home/ec2-user/oz/oz/Guest.py", line 1534, in install
    return self._do_install(timeout, force, 0)
  File "/home/ec2-user/oz/oz/Guest.py", line 1515, in _do_install
    dom = self.libvirt_conn.createXML(xml, 0)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 2420, in createXML
    if ret is None:raise libvirtError('virDomainCreateXML() failed', conn=self)
libvirt.libvirtError: internal error process exited while connecting to monitor: qemu-system-x86_64: -netdev tap,fd=22,id=hostnet0,vhost=on,vhostfd=23: vhost-net support is not compiled in
qemu-system-x86_64: -netdev tap,fd=22,id=hostnet0,vhost=on,vhostfd=23: vhost-net requested but could not be initialized
qemu-system-x86_64: -netdev tap,fd=22,id=hostnet0,vhost=on,vhostfd=23: Device 'tap' could not be initialized

I've also reported this to Oz upstream under this issue:

https://github.com/clalancette/oz/issues/47

However I think this is a libvirt bug. I haven't fully diagonized this but it appears that qemu-system-x86_64 is built without vhost support. However, libvirtd does pass a vhost=on parameter.

I've added the XML that Oz generated to create the guest.

Comment 1 Fedora End Of Life 2013-07-03 23:45:25 UTC
This message is a reminder that Fedora 17 is nearing its end of life.
Approximately 4 (four) weeks from now Fedora will stop maintaining
and issuing updates for Fedora 17. It is Fedora's policy to close all
bug reports from releases that are no longer maintained. At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '17'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 17's end of life.

Bug Reporter:  Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 17 is end of life. If you 
would still like  to see this bug fixed and are able to reproduce it 
against a later version  of Fedora, you are encouraged  change the 
'version' to a later Fedora version prior to Fedora 17's end of life.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 2 Cole Robinson 2013-07-11 17:28:19 UTC
This doesn't appear to be an issue on F19, and since F17 is EOL very soon, just closing as CURRENTRELEASE.