Escape hatch: share stdout with node children#3130
Merged
AndyGerlicher merged 1 commit intodotnet:vs15.7from Mar 25, 2018
Merged
Escape hatch: share stdout with node children#3130AndyGerlicher merged 1 commit intodotnet:vs15.7from
AndyGerlicher merged 1 commit intodotnet:vs15.7from
Conversation
The VSTest runner emits log messages to its stdout. So far, in .NET Core, that has resulted in them getting piped all the way up through the worker MSBuild that launched the task, the entry-point MSBuild coordinating the build, and the `dotnet test` invocation that started it all. The introduction of node reuse for .NET Core makes this untenable: worker nodes should not share stdout with the process that happened to launch them, because they will be long-lived and may do entirely unrelated builds. But for now, this breaks the `dotnet test` scenario. This commit creates an escape hatch environment variable `MSBUILDENSURESTDOUTFORTASKPROCESSES` that can be used in combination with `/nodereuse:false` to create a cone of MSBuild processes that all share std handles. Enables workaround for microsoft/vstest#1503.
Member
Author
AndyGerlicher
approved these changes
Mar 25, 2018
Contributor
|
Looks good, but I want #3131 before we do a build. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The VSTest runner emits log messages to its stdout. So far, in .NET
Core, that has resulted in them getting piped all the way up through
the worker MSBuild that launched the task, the entry-point MSBuild
coordinating the build, and the
dotnet testinvocation that startedit all.
The introduction of node reuse for .NET Core makes this untenable:
worker nodes should not share stdout with the process that happened to
launch them, because they will be long-lived and may do entirely
unrelated builds.
But for now, this breaks the
dotnet testscenario. This commit createsan escape hatch environment variable
MSBUILDENSURESTDOUTFORTASKPROCESSESthat can be used in combinationwith
/nodereuse:falseto create a cone of MSBuild processes that allshare std handles.
Enables workaround for microsoft/vstest#1503.