← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1259796] [NEW] nova-compute failed to start because get_host_capablilities failed

 

Public bug reported:

When starting nova-compute service on node with lxc hypervisor, it
failed with the following error:

 2013-12-11 03:04:41.439 ERROR nova.openstack.common.threadgroup [-] can only parse strings
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup Traceback (most recent call last):
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/openstack/common/threadgroup.py", line 117, in wait
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     x.wait()
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/openstack/common/threadgroup.py", line 49, in wait
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     return self.thread.wait()
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 168, in wait
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     return self._exit_event.wait()
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/dist-packages/eventlet/event.py", line 116, in wait
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     return hubs.get_hub().switch()
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 187, in switch
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     return self.greenlet.switch()
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 194, in main
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     result = function(*args, **kwargs)
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/openstack/common/service.py", line 448, in run_service
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     service.start()
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/service.py", line 164, in start
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self.manager.pre_start_hook()
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/compute/manager.py", line 822, in pre_start_hook
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self.update_available_resource(nova.context.get_admin_context())
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/compute/manager.py", line 4971, in update_available_resource
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     nodenames = set(self.driver.get_available_nodes())
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/driver.py", line 980, in get_available_nodes
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     stats = self.get_host_stats(refresh=refresh)
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 4569, in get_host_stats
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     return self.host_state.get_host_stats(refresh=refresh)
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 429, in host_state
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self._host_state = HostState(self)
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 4960, in __init__
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self.update_status()
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 4999, in update_status
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self.driver.get_instance_capabilities()
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 3702, in get_instance_capabilities
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     caps = self.get_host_capabilities()
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2739, in get_host_capabilities
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self._caps.host.cpu.parse_str(features)
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/config.py", line 61, in parse_str
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self.parse_dom(etree.fromstring(xmlstr))
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "lxml.etree.pyx", line 2993, in lxml.etree.fromstring (src/lxml/lxml.etree.c:62980)
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "parser.pxi", line 1614, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:92786)
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup ValueError: can only parse strings
2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup 


This is because no cpu model info can be gotten from libvirt getCapabilities interface for lxc hypervisor.

** Affects: nova
     Importance: Undecided
         Status: New

-- 
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/1259796

Title:
  nova-compute failed to start because get_host_capablilities failed

Status in OpenStack Compute (Nova):
  New

Bug description:
  When starting nova-compute service on node with lxc hypervisor, it
  failed with the following error:

   2013-12-11 03:04:41.439 ERROR nova.openstack.common.threadgroup [-] can only parse strings
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup Traceback (most recent call last):
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/openstack/common/threadgroup.py", line 117, in wait
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     x.wait()
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/openstack/common/threadgroup.py", line 49, in wait
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     return self.thread.wait()
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 168, in wait
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     return self._exit_event.wait()
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/dist-packages/eventlet/event.py", line 116, in wait
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     return hubs.get_hub().switch()
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 187, in switch
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     return self.greenlet.switch()
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 194, in main
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     result = function(*args, **kwargs)
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/openstack/common/service.py", line 448, in run_service
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     service.start()
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/service.py", line 164, in start
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self.manager.pre_start_hook()
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/compute/manager.py", line 822, in pre_start_hook
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self.update_available_resource(nova.context.get_admin_context())
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/compute/manager.py", line 4971, in update_available_resource
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     nodenames = set(self.driver.get_available_nodes())
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/driver.py", line 980, in get_available_nodes
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     stats = self.get_host_stats(refresh=refresh)
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 4569, in get_host_stats
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     return self.host_state.get_host_stats(refresh=refresh)
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 429, in host_state
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self._host_state = HostState(self)
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 4960, in __init__
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self.update_status()
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 4999, in update_status
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self.driver.get_instance_capabilities()
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 3702, in get_instance_capabilities
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     caps = self.get_host_capabilities()
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 2739, in get_host_capabilities
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self._caps.host.cpu.parse_str(features)
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "/opt/stack/nova/nova/virt/libvirt/config.py", line 61, in parse_str
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup     self.parse_dom(etree.fromstring(xmlstr))
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "lxml.etree.pyx", line 2993, in lxml.etree.fromstring (src/lxml/lxml.etree.c:62980)
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup   File "parser.pxi", line 1614, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:92786)
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup ValueError: can only parse strings
  2013-12-11 03:04:41.439 TRACE nova.openstack.common.threadgroup 

  
  This is because no cpu model info can be gotten from libvirt getCapabilities interface for lxc hypervisor.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1259796/+subscriptions


Follow ups

References