MSBuild Weekly Report — 2026-03-10 #9
Replies: 7 comments
🔍 Investigation: Issue #13334 — Node reuse is non-functional on macOS — three bugs cause orphaned node accumulationUpstream: dotnet/msbuild#13334 SummaryThis is a critical macOS-specific bug affecting MSBuild's out-of-process node reuse mechanism. Three independent bugs combine to make node reuse completely non-functional on macOS, causing indefinite accumulation of orphaned MSBuild worker processes. The issue was reported by a Microsoft team member (JakeRadMSFT) with detailed code analysis and source file references that have been verified against the current codebase. Root Cause AnalysisI verified the referenced code locations in the MSBuild repository. The issue involves three interacting bugs: Bug 1: 50ms Handshake Timeout (Primary)
Bug 2: SessionId Mismatch on Unix
Bug 3: 60-Second ClientConnectTimeout
Interaction Pattern: Reproduction DetailsAttempted: Local reproduction in Linux CI environment Expected reproduction on macOS:
Verification of code locations:
Suggested Next Steps
Impact severity: This completely breaks a core MSBuild performance optimization on macOS. The proposed fixes are surgical (3 small code changes) and well-justified. Automated investigation by MSBuild Weekly Report workflow
|
🔍 Investigation: Issue #13329 — AutoGenerateBindingRedirects doesn't propagate from dependencies and ReferenceCopyLocalPaths copies wrong assembly versionsUpstream: dotnet/msbuild#13329 SummaryThis is a well-documented longstanding bug in MSBuild's .NET Framework binding redirect generation and assembly copy logic. When building .NET Framework executables with Root Cause AnalysisThe issue stems from two architectural problems in MSBuild's .NET Framework build targets: Problem 1: Binding Redirect Propagation Failure
Problem 2: ReferenceCopyLocalPaths Duplication
Core Design Flaw:
Reported SolutionThe issue author has developed a comprehensive pure-MSBuild workaround using two custom targets:
This workaround demonstrates the problems are solvable within MSBuild's existing task infrastructure. Related Historical ContextThis issue connects to multiple longstanding bugs:
The fact that these issues span 8+ years indicates a fundamental architectural limitation in how MSBuild handles .NET Framework binding redirects. Reproduction DetailsAttempted: Creation of minimal reproduction with:
Status: Environment constraints prevented dotnet CLI execution and build testing. However, the issue description provides:
The high quality of the issue report (architectural analysis, working solution with code, testing evidence) strongly validates the problem's existence. Suggested Next Steps
Automated investigation by MSBuild Weekly Report workflow
|
🔍 Investigation: Issue #13323 — TransactionalModePreservesAllData test is flakyUpstream: dotnet/msbuild#13323 SummaryThe Root Cause AnalysisThe test exercises MSBuild's transactional mode for Error details: This "file already exists" error during file creation suggests a race condition in the atomic replacement logic:
The test uses
Key source location: Reproduction DetailsThe test creates 4 child projects that build in parallel using Test structure:
The test comment notes: "With transactional mode and Overwrite=true, build should succeed. Atomic replace prevents file corruption even with concurrent writes." However, the atomic replacement implementation has a race condition that causes intermittent failures. Suggested Next Steps
Automated investigation by MSBuild Weekly Report workflow
|
🔍 Investigation: Issue #13307 — Get Microsoft.NET.Build.Extensions from a package for bootstrap assemblyUpstream: dotnet/msbuild#13307 SummaryThe MSBuild bootstrap build process incorrectly copies Root Cause AnalysisThe issue is in (InstalledMicrosoftExtensions Include="$(MSBuildExtensionsPath)\Microsoft\**\*.*"
Exclude="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\NodeJs\**" /)The problem manifests as follows:
This issue was discovered during PR #13232 (Isolate MSBuildTaskHost from rest of MSBuild Codebase), where test failures revealed the bootstrap layout inconsistency. The PR author implemented a workaround but flagged it as "super hacky" and noted the underlying bootstrap issue needs proper resolution. Key source files:
Reproduction DetailsAttempted reproduction: Created a minimal .NET 3.5 console project to exercise the Microsoft.NET.Build.Extensions dependency, but encountered infrastructure limitations preventing execution. Expected behavior: The bootstrap build should produce a consistent layout regardless of whether the repo is built with Root issue: The bootstrap process relies on the ambient Suggested Next Steps
Automated investigation by MSBuild Weekly Report workflow
|
🔍 Investigation: Issue #12944 — error MSB4166: Child node "3" exited prematurelyUpstream: dotnet/msbuild#12944 SummaryThis is a regression introduced in .NET 10 where MSBuild's inter-process communication (IPC) between parent and child build nodes fails with a "Broken pipe" error during parallel builds. The issue primarily affects Entity Framework bundle builds in Docker containers and FreeBSD systems, and appears to be intermittent, requiring multiple build attempts to trigger. Root Cause AnalysisThe error Stack trace from failure log: Key findings:
Likely causes:
Reproduction DetailsAttempted reproduction: Created minimal EF Core + Docker setup based on issue description, but cannot reproduce in GitHub Actions Linux environment. Confirmed reproduction (from issue comments):
Original report steps: RUN dotnet tool install dotnet-ef --version 10.* --create-manifest-if-needed
RUN dotnet ef migrations bundle --self-contained -r linux-x64 -p ./Db/Db.csproj -s ./Api/Api.csproj -o efbundle --verboseWhy reproduction failed:
Suggested Next Steps
Monitoring: Issue remains open with "needs-investigation" label. MSBuild team is actively engaged. Automated investigation by MSBuild Weekly Report workflow
|
🧪 Investigation Results SummarySummary: Investigated 5 issue(s) — 0 reproduced, 3 not reproduced, 2 inconclusive
Investigation summary generated automatically. See individual comments above for full details.
|
|
This discussion was automatically closed because it expired on 2026-03-17T12:51:11.964Z.
|
Uh oh!
There was an error while loading. Please reload this page.
Report Generated: 2026-03-10
Time Window: Past 14 days (2026-02-24 to 2026-03-10)
📊 Quick Stats
Section 1 — New Unassigned Issues (created in past 14 days)
Section 2 — Older Unassigned Issues with Recent Activity (created > 14 days ago, comment in past 14 days)
Runtime="NET"crashing_PublishProfileRootFolderworkaroundAfterTargets="Build"in referenced projectsSection 3 — Open Pull Requests Triage (opened or active in past 14 days)
fixes #12867🔍 Issues Flagged for Deeper Investigation
🧪 Investigation Results
Investigation results will be added here as they complete.
All reactions