This was fixed in baadaa9842ad4ff8b637466affd3c9f2213b55ac.
Updates the Nova libvirt driver so we make a call to get
the driver capabilities. This is clearly a work around
but it does allow nova-compute to startup cleanly when
performing a clean install of Fedora 19.
See notes in: https://bugzilla.redhat.com/show_bug.cgi?id=1000116
Fixes LP Bug #1215593.
Change-Id: I2c74dc001032e3cc4d7d55a3fa407b96fd0d0e78
** Bug watch added: Red Hat Bugzilla #1000116
https://bugzilla.redhat.com/show_bug.cgi?id=1000116
** Changed in: nova
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1215593
Title:
nova-compute startup failure on Fedora 19 fresh install (no suitable
emulator)
Status in OpenStack Compute (Nova):
Fix Released
Bug description:
Using the latest Nova havana release on Fedora 19. I see the following
stack trace in Nova's compute.log file after performing a fresh
install of Nova/libvirt/qemu and trying to start nova-compute:
2013-08-22 19:01:57.245 9050 ERROR nova.openstack.common.threadgroup [-]
internal error Cannot find suitable emulator for x86_64
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
Traceback (most recent call last):
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/openstack/common/threadgroup.py", line
117, in wait
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
x.wait()
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/openstack/common/threadgroup.py", line
49, in wait
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
return self.thread.wait()
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 168, in wait
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
return self._exit_event.wait()
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/eventlet/event.py", line 116, in wait
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
return hubs.get_hub().switch()
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/eventlet/hubs/hub.py", line 187, in switch
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
return self.greenlet.switch()
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 194, in main
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
result = function(*args, **kwargs)
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/openstack/common/service.py", line 65,
in run_service
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
service.start()
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/service.py", line 154, in start
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
self.manager.init_host()
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 756, in
init_host
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
self._report_driver_status(context)
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 4318, in
_report_driver_status
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
capabilities = self.driver.get_host_stats(refresh=True)
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3733, in
get_host_stats
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
return self.host_state.get_host_stats(refresh=refresh)
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 374, in
host_state
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
self._host_state = HostState(self)
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4094, in
__init__
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
self.update_status()
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 4134, in
update_status
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
data["hypervisor_version"] = self.driver.get_hypervisor_version()
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 2939, in
get_hypervisor_version
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
return method()
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 187, in doit
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
result = proxy_call(self._autowrap, f, *args, **kwargs)
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 147, in proxy_call
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup rv =
execute(f,*args,**kwargs)
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib/python2.7/site-packages/eventlet/tpool.py", line 76, in tworker
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup rv =
meth(*args,**kwargs)
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup File
"/usr/lib64/python2.7/site-packages/libvirt.py", line 3550, in getVersion
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup if
ret == -1: raise libvirtError ('virConnectGetVersion() failed', conn=self)
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
libvirtError: internal error Cannot find suitable emulator for x86_64
2013-08-22 19:01:57.245 9050 TRACE nova.openstack.common.threadgroup
2013-08-22 19:03:25.960 9155 WARNING nova.virt.libvirt.driver [-] URI
qemu:///system does not support events
----------------
I've filed a related Bugzilla on the isolated libvirt issue here:
https://bugzilla.redhat.com/show_bug.cgi?id=1000116
This is using libvirt 1.0.5.5-1.
A couple of things can be done to work around this error.
1) Manually call 'virsh capabilities' and then restart nova-compute.
2) In the Nova libvirt driver if we reverse the order we call
getVersion and getCapabilites it also seems to fix it.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1215593/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp