https://gitlab.synchro.net/main/sbbs/-/commit/b0ecff520a8d44c125bf4090
Modified Files:
.gitlab-ci.yml
Log Message:
CI: disable MSBuild node reuse in the Windows jobs
windows-x86 [syncscumm] fails intermittently on the vert runner with
"MSB4166: Child node N exited prematurely", always in the same phase: the moment vcpkg's MSBuild integration fans its inline Roslyn task compiles
across the solution's ~9 projects. The same commit went fail, fail, pass
on three runs. One trace inlined the dead node's dump -- a MissingMethodException on System.Runtime.CompilerServices.Unsafe thrown
out of ToolsetConfigurationReader, i.e. the node crashed reading its own MSBuild.exe.config before binding redirects applied.
MSBuild keeps worker nodes alive for 15 minutes after a build and hands
them back out on a handshake that covers the MSBuild version but not the environment they were started in. The runner is a shell executor running several Windows jobs concurrently under one account -- every failure
overlapped both [syncterm-msvc] and [syncrpg] -- so a build can recruit a
node another job left behind and inherit its toolset environment.
Set MSBUILDDISABLENODEREUSE=1 on every Windows job that drives MSBuild,
through a new .windows-msbuild template. Reuse only saves node startup on back-to-back builds; developer builds keep it.
The door jobs this surfaced in were added in 1edeb70972.
Co-Authored-By: Claude Opus 5 (1M context) <
noreply@anthropic.com> Claude-Session:
https://claude.ai/code/session_01KvZbcp3SQ7xt7bgpRRxvpg
--- SBBSecho 3.37-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)