Status would never change from DELETE_IN_PROGRESS when instance deletion fails while deleting a stack
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Fix Released
|
Undecided
|
Rakesh H S |
Bug Description
[Issue]
I'm checking the behavior when system failure cases.
Stack status never changed from DELETE_IN_PROGRESS when cinder-api is in down.
[How to reproduce]
1) Create stack from following template, this template is using boot from volume.
$ cat template
{
"AWSTemplateF
"Resources": {
"instance": {
"Type": "OS::Nova::Server",
"Properties": {
"flavor": "m1.tiny",
{
}
]
}
},
"volume": {
"Type": "OS::Cinder:
"Properties": {
"size": 1,
"image": "36e138bb-
}
}
}
}
$ heat stack-create -f template test
+------
| id | stack_name | stack_status | creation_time |
+------
| 895bfcb1-
+------
$ heat stack-list
+------
| id | stack_name | stack_status | creation_time |
+------
| 895bfcb1-
+------
2) kill cinder-api processes.
$ ps aux|grep cinder-api|grep -v grep
devstack 517 1.9 0.7 51724 15332 pts/46 S 12:51 0:17 /usr/bin/python /opt/stack/
devstack 523 1.1 2.5 79812 53108 pts/46 S 12:51 0:10 /usr/bin/python /opt/stack/
$ kill -SIGKILL 517 523
$ ps aux|grep cinder-api|grep -v grep
$
3) Delete the stack.
$ heat stack-delete 895bfcb1-
+------
| id | stack_name | stack_status | creation_time |
+------
| 895bfcb1-
+------
4) Stack status never changed from DELETE_IN_PROGRESS, however nova's instance status already set ERROR.
$ heat stack-delete 895bfcb1-
+------
| id | stack_name | stack_status | creation_time |
+------
| 895bfcb1-
+------
$ nova list
+------
| ID | Name | Status | Task State | Power State | Networks |
+------
| 387c4bcd-
+------
$ heat stack-list
+------
| id | stack_name | stack_status | creation_time |
+------
| 895bfcb1-
+------
[etc]
In addition, we can reproduce same behavior when neutron-server is in down.
In my understanding, heat-engine recognize instance deletion complete by 404.
But in case of instance deletion failed, nova would never reply 404 because instance isn't gone yet.
I think, nova_utils.py should check instance's status.
description: | updated |
Changed in heat: | |
assignee: | nobody → Rakesh H S (rh-s) |
Changed in heat: | |
status: | New → In Progress |
summary: |
- Status would never changed from DELETE_IN_PROGRESS when instance - deletion failed + Status would never change from DELETE_IN_PROGRESS when instance deletion + fails while deleting a stack |
Fix proposed to branch: master /review. openstack. org/104454
Review: https:/