Attempt to avoid cycled when expanding updated ids to include impacted resolvers #4792
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.
We have seen a bug internally which appears to be a case where we encounter a cycle in this code and thus an infinite loop. I have yet to figure out how to reproduce that behavior, but it's clear that there is a bug in this code. We maintain a set of visited IDs but then never check that set as you progress.
For now I'm adding what I believe to be a more correct implementation, however I haven't yet been able to reproduce so I'm not 100% sure this will actually fix the issue. Additionally, it's in a sensitive part of the code, so I'm gating it to allow for a gradual rollout and the ability to quickly disable.
Test Plan
I've ensured the relevant tests validate both paths. During rollout I'll also create Diffs to run e2e tests with the fix enabled.