ironic: moving node to maintenance makes it unusable afterwards
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
Matt Riedemann | ||
Rocky |
Fix Committed
|
High
|
Matt Riedemann | ||
Stein |
Fix Committed
|
High
|
Matt Riedemann |
Bug Description
If you use the Ironic API to set a node into a maintenance (for whatever reason), it will no longer be included in the list of available nodes to Nova.
When Nova refreshes it's resources periodically, it will find that it is no longer in the list of available nodes and delete it from the database.
Once you enable the node again and Nova attempts to create the ComputeNode again, it fails due to the duplicate UUID in the database, because the old record is soft deleted and had the same UUID.
ref:
https:/
- this made computenode.uuid match the baremetal uuid
https:/
- this soft-deletes the computenode record when it doesn't see it in the list of active nodes
traces:
2019-08-08 17:20:13.921 6379 INFO nova.compute.
...
2019-08-08 22:21:25.284 82770 WARNING nova.compute.
....
Remote error: DBDuplicateEntry (pymysql.
....
IRC discussion about the issue:
http:// eavesdrop. openstack. org/irclogs/ %23openstack- nova/%23opensta ck-nova. 2019-08- 08.log. html#t2019- 08-08T22: 43:39