dotnet / msbuild

The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
https://docs.microsoft.com/visualstudio/msbuild/msbuild
MIT License
5.21k stars 1.35k forks source link

[Bug]: Error MSB4166 shows in about 1% of our builds in the same machine #10242

Closed luqq closed 2 months ago

luqq commented 3 months ago

Issue Description

Errors like: 16:41:57.454 0>MSBUILD : error MSB4166: Child node "2" exited prematurely. Shutting down. Diagnostic information may be found in files in "C:\Users\Administrator\AppData\Local\Temp\MSBuildTemp\" and will be named MSBuild_*.failure.txt. This location can be changed by setting the MSBUILDDEBUGPATH environment variable to a different directory. are showing in our logs and stopping the build. The machine has 16 cores and 8 jobs could be executed at the same time. The commands launched are: dotnet restore $env:WORKSPACE/repositories/mesapitto/mesapitto/mesapitto.sln --verbosity diagnostic /p:NodeReuse=false --disable-parallel --no-cache dotnet build $env:WORKSPACE/repositories/mesapitto/mesapitto/mesapitto.sln --verbosity diagnostic /p:NodeReuse=false Windows version is Windows Server 2022. Build tools are up to date to 17.10.2.

Steps to Reproduce

We always run the same scripts in different projects, and it would show randomly. I'm attaching a msbuild detailed log. No additional error log is generated in the mentioned folder. console.log

Expected Behavior

The "child node" error never happens

Actual Behavior

The "child node" error randomly happens about 1 in 100 builds. It could happen in two consecutive builds or not happen in a week, it just seems random.

Analysis

No response

Versions & Configurations

MSBuild version 17.10.4+10fbfbf2e for .NET Framework 17.10.4.21802 It is invoked by this two commands: dotnet restore $env:WORKSPACE/repositories/mesapitto/mesapitto/mesapitto.sln --verbosity diagnostic /p:NodeReuse=false --disable-parallel --no-cache dotnet build $env:WORKSPACE/repositories/mesapitto/mesapitto/mesapitto.sln --verbosity diagnostic /p:NodeReuse=false

JanKrivanek commented 3 months ago

For easier investigation - we'd need the failure logs and communication logs.

You can collect those by setting MSBUILDDEBUGCOMM env var to 1 and (optionally, but recommended) MSBUILDDEBUGPATH to an existing location that will have the MSBuild logs collected. e.g.:

> $env:MSBUILDDEBUGCOMM = 1 
> $env:MSBUILDDEBUGPATH="C:\MSBuildReproLogs" 
> <run scenario>

NOTE: Ensure it does not include any information you don't want to be public before you attach those. If you want to share just with Microsoft, you can report a problem through Visual Studio and share it privately with Microsoft.

dotnet-policy-service[bot] commented 2 months ago

This issue is marked as stale because feedback has been requested for 30 days with no response. Please respond within 14 days or this issue will be closed due to inactivity.

dotnet-policy-service[bot] commented 2 months ago

This issue was closed due to inactivity. If you can still reproduce this bug, please comment with the requested information, detailed steps to reproduce the problem, or any other notes that might help in the investigation.