← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1377024] [NEW] nova-compute fails to spawn a VM with a crash in _get_host_numa_topology

 

Public bug reported:

Apparently, this is introduced in this commit:
https://github.com/openstack/nova/commit/f5b37bac2eec89003cef6220722cc527a00ae7ee

On Precise with "qemu", I am unable ot spwan a VM with the following
stackce in nova-compute

2014-09-30 16:38:44.188 10841 DEBUG nova.virt.libvirt.driver [-] Updating host stats update_status /opt/stack/nova/nova/virt/libvirt/driver.py:6361
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 455, in fire_timers
    timer()
  File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/timer.py", line 58, in __call__
    cb(*args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/eventlet/event.py", line 168, in _do_send
    waiter.switch(result)
  File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 212, in main
    result = function(*args, **kwargs)
  File "/opt/stack/nova/nova/openstack/common/service.py", line 490, in run_service
    service.start()
  File "/opt/stack/nova/nova/service.py", line 181, in start
    self.manager.pre_start_hook()
  File "/opt/stack/nova/nova/compute/manager.py", line 1152, in pre_start_hook
    self.update_available_resource(nova.context.get_admin_context())
  File "/opt/stack/nova/nova/compute/manager.py", line 5946, in update_available_resource
    nodenames = set(self.driver.get_available_nodes())
  File "/opt/stack/nova/nova/virt/driver.py", line 1237, in get_available_nodes
    stats = self.get_host_stats(refresh=refresh)
  File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 5771, in get_host_stats
    return self.host_state.get_host_stats(refresh=refresh)
  File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 470, in host_state
    self._host_state = HostState(self)
  File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 6331, in __init__
    self.update_status()
  File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 6387, in update_status
    numa_topology = self.driver._get_host_numa_topology()
  File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 4828, in _get_host_numa_topology
    for cell in topology.cells])
TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'


Libvirt related package versions:
$ dpkg -l|grep libvir
ii  libvirt-bin                           0.9.8-2ubuntu17.20                programs for the libvirt library
ii  libvirt0                              0.9.8-2ubuntu17.20                library for interfacing with different virtualization systems
ii  python-libvirt                        0.9.8-2ubuntu17.20                libvirt Python bindings


capabilities xml that I get from libvirt. Indeed "memory" node under "cell" is missing. 

    <topology>
      <cells num='1'>
        <cell id='0'>
          <cpus num='4'>
            <cpu id='0'/>
            <cpu id='1'/>
            <cpu id='2'/>
            <cpu id='3'/>
          </cpus>
        </cell>
      </cells>
    </topology>

** 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/1377024

Title:
  nova-compute fails to spawn a VM with a crash in
  _get_host_numa_topology

Status in OpenStack Compute (Nova):
  New

Bug description:
  Apparently, this is introduced in this commit:
  https://github.com/openstack/nova/commit/f5b37bac2eec89003cef6220722cc527a00ae7ee

  On Precise with "qemu", I am unable ot spwan a VM with the following
  stackce in nova-compute

  2014-09-30 16:38:44.188 10841 DEBUG nova.virt.libvirt.driver [-] Updating host stats update_status /opt/stack/nova/nova/virt/libvirt/driver.py:6361
  Traceback (most recent call last):
    File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 455, in fire_timers
      timer()
    File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/timer.py", line 58, in __call__
      cb(*args, **kw)
    File "/usr/local/lib/python2.7/dist-packages/eventlet/event.py", line 168, in _do_send
      waiter.switch(result)
    File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 212, in main
      result = function(*args, **kwargs)
    File "/opt/stack/nova/nova/openstack/common/service.py", line 490, in run_service
      service.start()
    File "/opt/stack/nova/nova/service.py", line 181, in start
      self.manager.pre_start_hook()
    File "/opt/stack/nova/nova/compute/manager.py", line 1152, in pre_start_hook
      self.update_available_resource(nova.context.get_admin_context())
    File "/opt/stack/nova/nova/compute/manager.py", line 5946, in update_available_resource
      nodenames = set(self.driver.get_available_nodes())
    File "/opt/stack/nova/nova/virt/driver.py", line 1237, in get_available_nodes
      stats = self.get_host_stats(refresh=refresh)
    File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 5771, in get_host_stats
      return self.host_state.get_host_stats(refresh=refresh)
    File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 470, in host_state
      self._host_state = HostState(self)
    File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 6331, in __init__
      self.update_status()
    File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 6387, in update_status
      numa_topology = self.driver._get_host_numa_topology()
    File "/opt/stack/nova/nova/virt/libvirt/driver.py", line 4828, in _get_host_numa_topology
      for cell in topology.cells])
  TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'

  
  Libvirt related package versions:
  $ dpkg -l|grep libvir
  ii  libvirt-bin                           0.9.8-2ubuntu17.20                programs for the libvirt library
  ii  libvirt0                              0.9.8-2ubuntu17.20                library for interfacing with different virtualization systems
  ii  python-libvirt                        0.9.8-2ubuntu17.20                libvirt Python bindings

  
  capabilities xml that I get from libvirt. Indeed "memory" node under "cell" is missing. 

      <topology>
        <cells num='1'>
          <cell id='0'>
            <cpus num='4'>
              <cpu id='0'/>
              <cpu id='1'/>
              <cpu id='2'/>
              <cpu id='3'/>
            </cpus>
          </cell>
        </cells>
      </topology>

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


Follow ups

References