Fix hang in Solution Explorer search through transitive package items of dependencies tree #5917
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.
Bug
Fixes: NuGet/Home#13619
Fixes: https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2079818
Description
#5508 reduced the number of dataflow updates through code that led to redundant tree updates. It did that by inhibiting updates in cases where nothing changed.
AssetsFileDependenciesTreeSearchProvider
usesGetLatestVersionAsync
to obtain the latest snapshot value, relative to the current data versions of the project. However suppression of updates meant that the latest version might not be present, and the call would hang indefinitely. This would break Solution Explorer search for customers who enabled "Search External Items", have SDK-style .NET projects in the solution, and make certain project changes that lead to so-called "version-only" updates.This PR reverts #5508 and adds a downstream check for unchanged data, skipping tree updates in such cases. This means that the latest data is always available for the search component to consume, meaning there's no hang.
PR Checklist