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

sahid sferdjao at redhat.com
Wed Jun 29 09:41:03 UTC 2016


This issue has been addressed by:

https://review.openstack.org/gitweb?p=openstack/nova.git;a=commitdiff;h=8df48025c36c8bc595f346f0b76ee010ae86737d

The scheduling part should have been addressed by Nikola during one of
his serie to let the kernel decides the placement when nothing has been
requested by users.

** Changed in: nova
       Status: Incomplete => Fix Committed

-- 
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to nova in Ubuntu.
https://bugs.launchpad.net/bugs/1418187

Title:
  _get_host_numa_topology assumes numa cell has memory

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

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



More information about the Ubuntu-openstack-bugs mailing list