Fix unintended exponential algorithm in recursive_will_execute #2964
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.
The intention of
recursive_will_execute
is to count the number of nodes that will be executed given some target nodes. However, the implementation used a list instead of a set for the count, so nodes were unintentionally getting duplicated. The count of each node ended up being the number of paths that reach that node instead of just 1. In general, there may be exponentially many paths which led to OOM errors with deeper graphs.