Comment 1 for bug 1384750

Revision history for this message
Pavlo Shchelokovskyy (pshchelo) wrote :

I think I have a "minimal" reproducer.

For that I use custom resource plugin that takes forever to update:
https://github.com/pshchelo/stackdev/tree/9525f896cd93cf3a0b0ae6f1321245fed7201eba/heat_plugins/stuck

and register it with Heat. The I use these templates:
https://github.com/pshchelo/stackdev/tree/9525f896cd93cf3a0b0ae6f1321245fed7201eba/templates/stuck

create stack with two resources
$ heat stack-create stuck -f stuck2.yaml

update stack updating first resource and deleting the second
$ heat stack-update stuck -f stuck1.yaml

stack is hanging in UPDATE_IN_PROGRESS by design. Try to delete the stack:
$ heat stack-delete stuck

now the stack is stuck in DELETE_IN_PROGRESS, and there is nothing that could be done with it.

heat-engine log has the following traceback:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py", line 455, in fire_timers
    timer()
  File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/timer.py", line 58, in __call__
    cb(*args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 212, in main
    result = function(*args, **kwargs)
  File "/opt/stack/heat/heat/engine/service.py", line 113, in _start_with_trace
    return func(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/osprofiler/profiler.py", line 105, in wrapper
    return f(*args, **kwargs)
  File "/opt/stack/heat/heat/engine/stack.py", line 972, in delete
    self._delete_backup_stack(backup_stack)
  File "/opt/stack/heat/heat/engine/stack.py", line 851, in _delete_backup_stack
    curr_res = self.resources[key]
KeyError: u'second'