a8492e8878
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 main race condition involved is in update_available_resources in the compute manager. When the list of compute nodes is queried, there is a compute node belonging to the host that it does not expect to be managing, i.e. it is an orphan. Between that time and deleting the orphan, the real owner of the compute node takes ownership of it ( in the resource tracker). However, the node is still deleted as the first host is unaware of the ownership change. This change prevents this from occurring by filtering on the host when deleting a compute node. If another compute host has taken ownership of a node, it will have updated the host field and this will prevent deletion from occurring. The first host sees this has happened via the ComputeHostNotFound exception, and avoids deleting its resource provider. Co-Authored-By: melanie witt <melwittt@gmail.com> Closes-Bug: #1853009 Related-Bug: #1841481 Change-Id: I260c1fded79a85d4899e94df4d9036a1ee437f02
8 lines
296 B
YAML
8 lines
296 B
YAML
---
|
|
fixes:
|
|
- |
|
|
Fixes an issue with multiple ``nova-compute`` services used with Ironic,
|
|
where a rebalance operation could result in a compute node being deleted
|
|
from the database and not recreated. See `bug 1853009
|
|
<https://bugs.launchpad.net/nova/+bug/1853009>`__ for details.
|