← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1418187] Re: _get_host_numa_topology assumes numa cell has memory

 

** Changed in: nova (Ubuntu)
       Status: Incomplete => 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/1418187

Title:
  _get_host_numa_topology assumes numa cell has memory

Status in OpenStack Compute (nova):
  Fix Released
Status in OpenStack Compute (nova) juno series:
  Fix Released
Status in nova package in Ubuntu:
  Fix Released

Bug description:
  numa cells are not guaranteed to have memory.
  libvirt capabilities represent that correctly.
  nova's _get_host_numa_topology assumes that it can convert cell's memory to
  kilobytes via: 
     memory=cell.memory / units.Ki.

  but cell.memory ends up being None. for some
  LibvirtConfigCapsNUMACell.

  stack trace is like this:
  [-] unsupported operand type(s) for /: 'NoneType' and 'int'
  Traceback (most recent call last):
    File "/usr/lib/python2.7/dist-packages/nova/openstack/common/threadgroup.py", line 145, in wait
      x.wait()
    File "/usr/lib/python2.7/dist-packages/nova/openstack/common/threadgroup.py", line 47, in wait
      return self.thread.wait()
    File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 173, in wait
      return self._exit_event.wait()
    File "/usr/lib/python2.7/dist-packages/eventlet/event.py", line 121, in wait
      return hubs.get_hub().switch()
    File "/usr/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 293, in switch
      return self.greenlet.switch()
    File "/usr/lib/python2.7/dist-packages/eventlet/greenthread.py", line 212, in main
      result = function(*args, **kwargs)
    File "/usr/lib/python2.7/dist-packages/nova/openstack/common/service.py", line 492, in run_service
      service.start()
    File "/usr/lib/python2.7/dist-packages/nova/service.py", line 181, in start
      self.manager.pre_start_hook()
    File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1188, in pre_start_hook
      self.update_available_resource(nova.context.get_admin_context())
    File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 6047, in update_available_resource
      rt.update_available_resource(context)
    File "/usr/lib/python2.7/dist-packages/nova/compute/resource_tracker.py", line 313, in update_available_resource
      resources = self.driver.get_available_resource(self.nodename)
    File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 4825, in get_available_resource
      numa_topology = self._get_host_numa_topology()
    File "/usr/lib/python2.7/dist-packages/nova/virt/libvirt/driver.py", line 4703, in _get_host_numa_topology
      for cell in topology.cells])
  TypeError: unsupported operand type(s) for /: 'NoneType' and 'int'

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