[Bug 1418187] [NEW] _get_host_numa_topology assumes numa cell has memory

Scott Moser smoser at ubuntu.com
Wed Feb 4 19:28:25 UTC 2015


Public bug reported:

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'

** Affects: nova (Ubuntu)
     Importance: Undecided
         Status: New

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

Title:
  _get_host_numa_topology assumes numa cell has memory

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



More information about the Ubuntu-server-bugs mailing list