[17.14] Avoid hang when similar build requests are serviced #12197
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.
Backports #11862 to 17.14.
Work item (Internal use): devdiv2530919
Summary
The MSBuild scheduler could hang when two similar-but-not-identical requests were received and serviced in short proximity. VS calling patterns trigger this sometimes.
This change handles the problematic case and additionally provides breadcrumbs in the memory dump that this situation occurred to improve future diagnosability of related issues.
Customer Impact
VS hang observed from telemetry; VS Perf team wants backport.
Regression?
No
Testing
Has been in main (.NET SDK 10 builds) and internal VS preview for ~1 month, with good telemetry from VS int preview.
Risk
Low due to bake time in main/int preview.