The SKUCrawler tool is used by the Windows Engineering System and runs at huge scale - recently we've seen issues with the controller process where it looks like a latent thread safety bug is causing the tool to fail.
Briefly summarize what changed
This changes the controller process to use more thread-safe data structures.
I also updated the package dependencies for some core packages as we should no longer need to explicitly depend on Newtonsoft.Json 13.0.1, which brought in a nullability change in the MSTest DeploymentDirectory so now that needs to be suppressed in many places as we always use deployment and it'll never be null for SizeBench tests.
How was the change tested?
Ran all the existing tests. This shouldn't need new tests, as it's essentially a race condition and (a) race conditions are super hard to test for, and (b) SKUCrawler has no test suite currently.
PR Checklist
[x] Contributor License Agreement (CLA) has been signed. If not, go here and sign the CLA
[x] Changes have been validated
[x] Documentation updated. Please add or update any docs in the repo as necessary.
Why is this change being made?
The SKUCrawler tool is used by the Windows Engineering System and runs at huge scale - recently we've seen issues with the controller process where it looks like a latent thread safety bug is causing the tool to fail.
Briefly summarize what changed
This changes the controller process to use more thread-safe data structures.
I also updated the package dependencies for some core packages as we should no longer need to explicitly depend on Newtonsoft.Json 13.0.1, which brought in a nullability change in the MSTest DeploymentDirectory so now that needs to be suppressed in many places as we always use deployment and it'll never be null for SizeBench tests.
How was the change tested?
Ran all the existing tests. This shouldn't need new tests, as it's essentially a race condition and (a) race conditions are super hard to test for, and (b) SKUCrawler has no test suite currently.
PR Checklist