microsoft / SizeBench

SizeBench is a binary size investigation tool for Windows
MIT License
103 stars 14 forks source link

SKUCrawler thread safety fixes and updating package dependencies. #21

Closed Austin-Lamb closed 1 year ago

Austin-Lamb commented 1 year ago

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