Subj : .gitlab-ci.yml To : Git commit to main/sbbs/master From : Rob Swindell (on Windows 11) Date : Sun Aug 23 2026 15:31:24 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) Claude-Session: https://claude.ai/code/session_01KvZbcp3SQ7xt7bgpRRxvpg --- SBBSecho 3.37-Linux * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705) .