dotnet / dotnet/msbuild

Improve error message when child process enters an endless loop

Open
#5,085 0 comments 0 reactions 0 assignees View on GitHub
Area: Debuggability Area: Tasks needs-design triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 8h
Merged PRs (30d)
141

Description

### Steps to reproduce
1) Create a custom task that results in endless recursion.
2) Call it with multiproc (/m) enabled.

### Desired behavior
Child logs that there was infinite recursion and exits gracefully; parent fails the build.

### Actual behavior
Child becomes unresponsive, parent thinks the child crashed and exits saying the child disconnected, and the child exits saying the parent became unresponsive.
```UNHANDLED EXCEPTIONS FROM PROCESS 12468:
12/11/2019 13:51:52
System.IO.IOException: Pipe is broken.
at System.IO.Pipes.NamedPipeServerStream.CheckConnectOperationsServer()
at System.IO.Pipes.NamedPipeServerStream.BeginWaitForConnection(AsyncCallback callback, Object state)
at Microsoft.Build.BackEnd.NodeEndpointOutOfProcBase.PacketPumpProc()
```

See https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1019781/

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.