-
Notifications
You must be signed in to change notification settings - Fork 9.5k
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
check for cancellation before apply confirmation #30979
Conversation
When executing an apply with no plan, it's possible for a cancellation to arrive during the final batch of provider operations, resulting in no errors in the plan. The run context was next checked during the confirmation for apply, but in the case of -auto-approve that confirmation is skipped, resulting in the canceled plan being applied. Make sure we directly check for cancellation before confirming the plan.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fix makes sense to me, one question/worry about the test inline (which might be nothing).
testHookStopPlanApply = cancel | ||
defer func() { | ||
testHookStopPlanApply = nil | ||
}() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there any chance of this leaking into another parallel test and causing a mid-process cancel?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tests must be explicitly marked with t.Parallel()
in order to run concurrently, so there should be no conflict there.
Reminder for the merging maintainer: if this is a user-visible change, please update the changelog on the appropriate release branch. |
I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active contributions. |
When executing an apply with no plan, it's possible for a cancellation
to arrive during the final batch of provider operations, resulting in no
errors in the plan. The run context was next checked during the
confirmation for apply, but in the case of -auto-approve that
confirmation is skipped, resulting in the canceled plan being applied.
Make sure we directly check for cancellation before confirming the plan.
Fixes #30918