Fix: Respect early SIGINT during graph walk #37921
Open
+155
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Previously, Terraform would not respect a SIGINT (Ctrl+C) if it occurred during the graph walk phase, specifically if a provider operation was about to start or blocked. This was because the context cancellation was not being propagated effectively to the graph walker or checked before starting new operations.
This commit introduces a StopContext to the Terraform Core Context, which is linked to the operation's stop context. The GraphWalker now checks this context before executing nodes. Additionally, the local backend now properly sets this context and handles early cancellation by returning immediately if the context is cancelled during the plan phase.
A regression test TestLocal_applyStopEarly has been added to verify that the operation aborts immediately when cancelled.
Fixes #31371
Target Release
1.14.x
Rollback Plan
Changes to Security Controls
Are there any changes to security controls (access controls, encryption, logging) in this pull request? If so, explain.
CHANGELOG entry