Resource type in old stack undefined during update
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Heat |
Fix Released
|
High
|
Thomas Herve | ||
Juno |
Fix Released
|
High
|
Crag Wolfe | ||
Kilo |
Fix Released
|
High
|
Zane Bitter | ||
Liberty |
Fix Released
|
High
|
Zane Bitter |
Bug Description
I just saw the following backtrace (in Kilo):
Traceback (most recent call last):
File "/usr/lib/
timer()
File "/usr/lib/
cb(*args, **kw)
File "/usr/lib/
result = function(*args, **kwargs)
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
return f(*args, **kwargs)
File "/usr/lib/
updater()
File "/usr/lib/
self.start(
File "/usr/lib/
self.step()
File "/usr/lib/
next(self._runner)
File "/usr/lib/
subtask = next(parent)
File "/usr/lib/
updater.
File "/usr/lib/
self.step()
File "/usr/lib/
next(self._runner)
File "/usr/lib/
subtask = next(parent)
File "/usr/lib/
self.previous_
File "/usr/lib/
self.resources.
File "/usr/lib/
self.t.
File "/usr/lib/
for (name, data) in
File "/usr/lib/
resource_name=name)
File "/usr/lib/
raise exception.
StackValidation
It appears that it is possible to load the previous stack using an environment in which an existing resource type is not defined; it then fails with StackValidation
Observing this issue is made harder by bug 1492433 and bug 1492427 - the stack was stuck in UPDATE_IN_PROGRESS and I found the backtrace only in the journal.
Changed in heat: | |
importance: | Medium → High |
Changed in heat: | |
status: | Triaged → Incomplete |
importance: | High → Undecided |
tags: | removed: in-stable-kilo juno-backport-potential |
tags: | removed: liberty-backport-potential |
Changed in heat: | |
status: | Fix Committed → Fix Released |
I hit this one recently, unfortunately I don't have exact steps for reproducer, but rough flow was:
1) deloyed overcloud (tripleo)
2) ran a stack-update operation (openstack overcloud update stack)
3) heat-engine was killed by OOM killer during stack-update
4) I manually updated state of IN_PROGRESS stacks/resources in DB to FAILED
5) restarted heat-engine and ran stack-update again -> at this point stack got stuck in IN_PROGRESS