nova/nova/scheduler
Mark Goddard 0fc104eeea Invalidate provider tree when compute node disappears
There is a race condition in nova-compute with the ironic virt driver
as nodes get rebalanced. It can lead to compute nodes being removed in
the DB and not repopulated. Ultimately this prevents these nodes from
being scheduled to.

The issue being addressed here is that if a compute node is deleted by a
host which thinks it is an orphan, then the resource provider for that
node might also be deleted. The compute host that owns the node might
not recreate the resource provider if it exists in the provider tree
cache.

This change fixes the issue by clearing resource providers from the
provider tree cache for which a compute node entry does not exist. Then,
when the available resource for the node is updated, the resource
providers are not found in the cache and get recreated in placement.

Change-Id: Ia53ff43e6964963cdf295604ba0fb7171389606e
Related-Bug: #1853009
Related-Bug: #1841481
(cherry picked from commit 2bb4527228)
2021-09-29 21:49:21 +00:00
..
client Invalidate provider tree when compute node disappears 2021-09-29 21:49:21 +00:00
filters Remove six.binary_type/integer_types/string_types 2020-12-13 11:25:14 +00:00
weights Add CrossCellWeigher 2019-12-12 12:40:29 -05:00
__init__.py Improve hacking rule to avoid author markers 2014-05-05 14:35:20 +02:00
driver.py conf: Drop '[scheduler] periodic_task_interval' 2021-02-09 17:26:25 +00:00
filter_scheduler.py Remove six.moves 2020-11-07 03:25:02 +00:00
host_manager.py pci: track host NUMA topology in stats 2021-03-08 15:19:13 -05:00
manager.py conf: Drop '[scheduler] periodic_task_interval' 2021-02-09 17:26:25 +00:00
request_filter.py FUP: Catch and reraise routed nets exception 2021-02-19 19:23:10 +01:00
rpcapi.py Use long_rpc_timeout in select_destinations RPC call 2018-11-20 09:03:53 -05:00
utils.py scheduler: Translate secure boot requests to trait 2021-03-08 16:33:16 +00:00