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

Backport of prevent cycles when connecting destroy nodes into v1.3 #31872

Merged

Conversation

teamterraform
Copy link
Contributor

Backport

This PR is auto-generated from #31857 to be assessed for backporting due to the inclusion of the label 1.3-backport.

The below text is copied from the body of the original PR.


When adding destroy edges between resources from different providers, and a provider itself depends on the other provider's resources, we can get cycles in the final dependency graph.

The problem is a little deeper than simply not connecting these nodes, since the edges are still needed when doing a full destroy operation. For now we can get by assuming the edges are required, and reverting them only if they result in a cycle. This works because destroy edges are the last edges added to managed resources during graph building.

This was rarely a problem before v1.3, because noop nodes were not added to the apply graph at all, and unused values were aggressively pruned. In v1.3 however all nodes are kept in the graph so that postcondition blocks are always evaluated during apply, increasing the chances of the cycles appearing.

Fixes #31843

Target Release

1.3.1

@teamterraform teamterraform force-pushed the backport/jbardin/destroy-edge-cycles/instantly-prepared-hagfish branch from 4205702 to 12d04da Compare September 26, 2022 18:24
@teamterraform teamterraform force-pushed the backport/jbardin/destroy-edge-cycles/instantly-prepared-hagfish branch from 7c76d6a to ab85a62 Compare September 26, 2022 18:24
@jbardin jbardin merged commit 1fede24 into v1.3 Sep 26, 2022
@jbardin jbardin deleted the backport/jbardin/destroy-edge-cycles/instantly-prepared-hagfish branch September 26, 2022 18:43
@github-actions
Copy link

Reminder for the merging maintainer: if this is a user-visible change, please update the changelog on the appropriate release branch.

@github-actions
Copy link

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.
If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 27, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants