NUMATopologyFilter raise exception and not continue filter next node when there is no wanted pagesize in current filtered host

Bug #1473308 reported by liuxiuli
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Chung Chih, Hung
Kilo
Won't Fix
Undecided
Unassigned
Liberty
Fix Released
Undecided
Unassigned

Bug Description

version:
2015.1.0

question:
NUMATopologyFilter raise exception and not continue filter next node when there is no wanted pagesize in current filtered host

Reproduce steps:
There are two compute nodes: Node1 and Node2 .
Node1 has 2M and 4K page size, and Node2 has 1G and 4K page size.
set hw:mem_page_size=1048576 in flavor, and create an instance by using this flavor

Expected result:
NUMATopologyFilter returns Node2 to build instance

Actual result:
NUMATopologyFilter raise this exception when NUMATopologyFilter filters Node1 and do not continue to filter Node2.

Exception during message handling: Page size 1048576 is not supported by the host.
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher Traceback (most recent call last):
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 142, in _dispatch_and_reply
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher executor_callback))
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 186, in _dispatch
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher executor_callback)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line 130, in _do_dispatch
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher result = func(ctxt, **new_args)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/server.py", line 142, in inner
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher return func(*args, **kwargs)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/scheduler/manager.py", line 86, in select_destinations
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher filter_properties)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/scheduler/filter_scheduler.py", line 67, in select_destinations
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher filter_properties)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/scheduler/filter_scheduler.py", line 138, in _schedule
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher filter_properties, index=num)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/scheduler/host_manager.py", line 524, in get_filtered_hosts
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher hosts, filter_properties, index)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/filters.py", line 78, in get_filtered_objects
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher list_objs = list(objs)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/filters.py", line 44, in filter_all
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher if self._filter_one(obj, filter_properties):
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/scheduler/filters/__init__.py", line 27, in _filter_one
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher return self.host_passes(obj, filter_properties)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/scheduler/filters/numa_topology_filter.py", line 54, in host_passes
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher pci_stats=host_state.pci_stats))
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/virt/hardware.py", line 1048, in numa_fit_instance_to_host
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher host_cell, instance_cell, limits)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/virt/hardware.py", line 778, in _numa_fit_instance_cell
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher host_cell, instance_cell)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/virt/hardware.py", line 631, in _numa_cell_supports_pagesize_request
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher return verify_pagesizes(host_cell, inst_cell, [inst_cell.pagesize])
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/virt/hardware.py", line 621, in verify_pagesizes
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher if host_cell.can_fit_hugepages(pagesize, inst_cell_mem):
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher File "/usr/lib/python2.7/site-packages/nova/objects/numa.py", line 144, in can_fit_hugepages
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher raise exception.MemoryPageSizeNotSupported(pagesize=pagesize)
2015-07-09 13:08:56.771 10446 TRACE oslo_messaging.rpc.dispatcher MemoryPageSizeNotSupported: Page size 1048576 is not supported by the host.

Changed in nova:
assignee: nobody → lyanchih (lyanchih)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/200630

Changed in nova:
status: New → In Progress
Matt Riedemann (mriedem)
Changed in nova:
importance: Undecided → Medium
tags: added: libvirt numa
tags: added: kilo-backport-potential
Changed in nova:
assignee: Chung Chih, Hung (lyanchih) → Michael Still (mikalstill)
Changed in nova:
assignee: Michael Still (mikalstill) → Chung Chih, Hung (lyanchih)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on nova (master)

Change abandoned by Michael Still (<email address hidden>) on branch: master
Review: https://review.openstack.org/200630
Reason: This change has stalled. Please restore it when its ready for further review.

Matt Riedemann (mriedem)
tags: added: liberty-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/200630
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=920586868daeef4367a5ea367e394d3fe3e572f5
Submitter: Jenkins
Branch: master

commit 920586868daeef4367a5ea367e394d3fe3e572f5
Author: lyanchih <email address hidden>
Date: Fri Jul 10 17:03:31 2015 +0000

    NUMATopologyFilter raise exception and not continue filter next node

    NUMATopologyFilter raise exception and not continue filter next node
    when there is no wanted pagesize in current filtered host.

    Catch MemoryPageSizeNotSupported exception to prevent this exception
    suspend procedure of filter hosts.

    Change-Id: Ice092c871beeca5de2fa6bbf274240f4db508008
    Closes-Bug: 1473308

Changed in nova:
status: In Progress → Fix Released
Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/nova 13.0.0.0b3

This issue was fixed in the openstack/nova 13.0.0.0b3 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.