Comment 17 for bug 1499669

Revision history for this message
Zane Bitter (zaneb) wrote :

One mystery remains: when the cancellation times out we raise the exception StopActionFailed, and prior to https://review.openstack.org/369827 this should have resulted in the parent stack getting an exception when calling stack_delete (it's now asynchronous, but previously was raised synchronously), and in turn the ResourceGroup resource in the parent stack being marked DELETE_FAILED.

The reason is that we're using cast() instead of call(), which means that we never see the response. This goes back to the original implementation of the RPC client in July 2012 (https://review.openstack.org/#/c/10614/):

    delete_stack seems to be the only method which returns nothing, so it can be
    invoked as cast or call, with cast being the default.

That wasn't true even at the time: while it did not return anything, it very much can raise exceptions, and the caller pretty much always needs to know about those exceptions. Both heat-cfn-api and heat-api have always passed cast=False, but we forgot to do the same here.