dotnet / dotnet/msbuild

MSBuild Server - breaking change detected - custom task runs child process

Open
#7,913 4 comments 0 reactions 0 assignees View on GitHub
Area: API Area: Application Area: Performance Area: Server backlog triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

### Issue Description
When custom task runs child process, such as here https://github.com/dotnet/arcade/blob/258a37cd6a7884f771d0f991d9f24d29e292abd0/src/Microsoft.DotNet.Arcade.Sdk/src/InstallDotNetCore.cs#L137-L142 , such processes started from task running at MSBuild server node or worker node will be unattached from stdout/err pipe and outputs from such processes will not make it to target device (console, terminal, file, etc...).

In some circumstances, such process can even fail, like it did in linux on https://github.com/dotnet/aspnetcore/pull/43028

It can break customers whom:
- Have custom tasks which start child process without outputs redirection.
- And, need outputs from such child processes to be redirected to current process outputs.

### Steps to Reproduce
* TODO: I will try to create mini repro.

### Workaround
a) opt-out from msbuild server (env var DOTNET_CLI_DO_NOT_USE_MSBUILD_SERVER=1 or build argument /nr:false)
b) change custom tasks to execute process with output redirected and capture those outputs
c) use MSBuild Exec task to run other processes and tools - it has b) already implemented

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.