← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1215593] Re: nova-compute startup failure on Fedora 19 fresh install (no suitable emulator)

 

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