You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
BuildCheckManager is currently created once per node and survives for the entire lifetime of the node. This might be problematic as it contains state that should not be shared between builds - BuildChecks registration, ConfigurationModule, etc.
Possible solution
BuildRequestEngine contains InitializeForBuild and CleanupForBuild methods that anchor a single build. CleanupForBuild is already used to finalize the BuildCheckManager stats collection. We can add caches invalidation (if needed in the future - not now).
The InitializeForBuild should probably contain code ensuring that BuildCheckManager is recreated or reinitialized.
Alternative solution
#10009 will eventually contain solution for making BuildCheckManager instance based and probably owned by LoggingContext - so lifetime might not be of a concern anymore... but we are not there yet
This issue affects PropertiesUsageCheck behavior, as it is created on the out of process node. As node reuse is the default, if you run some solution build without /check and then run build with /check, PropertiesUsageCheck will not provide any results for the projects built in the reused out of process nodes.
Context
BuildCheckManager
is currently created once per node and survives for the entire lifetime of the node. This might be problematic as it contains state that should not be shared between builds - BuildChecks registration, ConfigurationModule, etc.Possible solution
BuildRequestEngine
containsInitializeForBuild
andCleanupForBuild
methods that anchor a single build.CleanupForBuild
is already used to finalize the BuildCheckManager stats collection. We can add caches invalidation (if needed in the future - not now).The
InitializeForBuild
should probably contain code ensuring thatBuildCheckManager
is recreated or reinitialized.Alternative solution
#10009 will eventually contain solution for making
BuildCheckManager
instance based and probably owned byLoggingContext
- so lifetime might not be of a concern anymore... but we are not there yetBLOCKED BY #10145
The text was updated successfully, but these errors were encountered: