Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollback_Complete is counted as success #747

Open
cornerman opened this issue Jun 19, 2019 · 2 comments
Open

Rollback_Complete is counted as success #747

cornerman opened this issue Jun 19, 2019 · 2 comments

Comments

@cornerman
Copy link
Contributor

When launching a stack group, some stacks might fail and end up in the status `ROLLBACK_COMPLETE". Currently, sceptre would interpret this as a success, goes on with the deployment and tries to access outputs from the rollbacked stack. Furthermore, I often overlook that something failed and just assume everything worked. I think, it should be more prominent.

Now, a stack can end up in ROLLBACK_COMPLETE when being created the first time or when being updated. Therefore, the referenced output might or might not be defined. So, the dependent stack could actually fail. And if it does not fail, it is questionable, whether this is the desired result. Some parts of my deployment actually failed, and I would rather fail early than continuing until the end.

It might make sense to add a command-line option to enable/disable this behaviour, so you can explicitly ignore rollbacks if you want to.

@ngfgrant
Copy link
Contributor

https://github.com/cloudreach/sceptre/blob/523137b0cd46b44e326870407b5e340f0c63f66e/sceptre/plan/actions.py#L186

Launch should delete then create the stack if it encounters ROLLBACK_COMPLETE can you confirm the final state of the stack?

@cornerman
Copy link
Contributor Author

cornerman commented Jun 21, 2019

Launch should delete then create the stack if it encounters ROLLBACK_COMPLETE can you confirm the final state of the stack?

Indeed, launch does delete and tries to create the stack correctly. That works fine. The problem is if a dependent stack is in ROLLBACK_COMPLETE.

Example: There are two stacks A and B. Stack A depends on Stack B. If I launch both, first Stack B is launched. Now if Stack B fails, it will eventually end up in ROLLBACK_COMPLETE. Then sceptre still tries to start Stack A, eventhough Stack B could not be created (or updated).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants