Ironic nova driver fails to setup initial state correctly

Bug #1326639 reported by Robert Collins
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Invalid
Medium
Michael Davies
OpenStack Compute (nova)
Fix Released
Low
Unassigned

Bug Description

2014-06-05 04:04:54.552 28915 ERROR ironic.nova.virt.ironic.driver [req-66403d15-5f7e-4a59-8d3d-ba9d6e654fb5 None] Failed to request Ironic to provision instance ef3421ef-e7b3-4203-811c-dad052b9badf: RPC do_node_deploy called for cfa5c267-3a7c-4973-bdcf-80a139a947ea, but provision state is already deploy failed. (HTTP 500)

This happened because the node wasn't 'properly' cleaned after the last instance_uuid was removed from it. Seems to me that the ironic nova driver should not make any assumptions - just its instance_uuid atomically, and then reset all the state, and finally proceed to set the state it wants for deployment.

Tags: ironic
Revision history for this message
Dmitry Tantsur (divius) wrote :

Just a guess: if spawn() fails, driver calls _cleanup_deploy which removes instance_uuid, but nothing else.

Changed in ironic:
status: New → Triaged
importance: Undecided → Medium
tags: added: driver
Revision history for this message
aeva black (tenbrae) wrote :

I suspect there are other situations which can result in this condition, too. Moving to instance_info should alleviate this problem.

https://github.com/openstack/ironic-specs/blob/master/specs/juno/add-node-instance-info.rst

tags: added: nova-driver
removed: driver
Revision history for this message
Michael Davies (mrda) wrote :

Devananda thinks this change might (https://review.openstack.org/#/c/101864/) might resolve this bug. I'll try and verify this.

Changed in ironic:
assignee: nobody → Michael Davies (mrda)
Revision history for this message
Dmitry Tantsur (divius) wrote :

Hi Michael, any updates on this bug? I'm moving it Nova since driver is now there.

summary: - nova driver fails to setup initial state correctly
+ Ironic nova driver fails to setup initial state correctly
tags: added: ironic
Changed in ironic:
status: Triaged → Invalid
Sean Dague (sdague)
Changed in nova:
status: New → Confirmed
importance: Undecided → Low
aeva black (tenbrae)
tags: removed: nova-driver
Revision history for this message
Jim Rollenhagen (jim-rollenhagen) wrote :

This has been fixed for a while; we only expose resources available to a node in AVAILABLE/NONE provision state and with no instance uuid: https://github.com/openstack/nova/blob/master/nova/virt/ironic/driver.py#L301-L318

Changed in nova:
status: Confirmed → Fix Released
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.