ctest: call to uv_spawn fails on Windows 11
See Catch2 issue 2339.
When running the automated tests for CatchOrg.Catch2's tests, ctest fails with a cryptic error:
E:\Catch2\debug-build>ctest --output-on-failure -C Debug
Test project E:/Catch2/debug-build
Start 20: ApprovalTests
1/62 Test #20: ApprovalTests ..................................................... Passed 17.68 sec
Start 1: RunTests
AssignProcessToJobObject: (87) The parameter is incorrect.
Running ctest under the debugger shows it failing here:
0:000> k100
Child-SP RetAddr Call Site
(Inline Function) --------`-------- KERNELBASE!DebugBreak [minkernel\kernelbase\debug.c @ 143]
0000005e`0b389638 00007ff7`1c321224 KERNELBASE!wil::details::DebugBreak+0x2 [onecore\internal\sdk\inc\wil\opensource\wil\result_macros.h @ 1835]
0000005e`0b389640 00007ff7`1c31aca0 ctest!uv_fatal_error+0xf4 [E:\cmake\Utilities\cmlibuv\src\win\error.c @ 62]
0000005e`0b3896b0 00007ff7`1b8bc2f4 ctest!uv_spawn+0x8e0 [E:\cmake\Utilities\cmlibuv\src\win\process.c @ 1200]
0000005e`0b3898f0 00007ff7`1b6e0755 ctest!cm::uv_process_ptr::spawn+0x44 [E:\cmake\Source\cmUVHandlePtr.cxx @ 221]
0000005e`0b389920 00007ff7`1b6e9b41 ctest!cmProcess::StartProcess+0x9c5 [E:\cmake\Source\CTest\cmProcess.cxx @ 136]
0000005e`0b38a170 00007ff7`1b6e6433 ctest!cmCTestRunTest::ForkProcess+0x841 [E:\cmake\Source\CTest\cmCTestRunTest.cxx @ 769]
0000005e`0b38a670 00007ff7`1b6e4d93 ctest!cmCTestRunTest::StartTest+0x12d3 [E:\cmake\Source\CTest\cmCTestRunTest.cxx @ 627]
0000005e`0b38b330 00007ff7`1b6657f0 ctest!cmCTestRunTest::StartTest+0x73 [E:\cmake\Source\CTest\cmCTestRunTest.cxx @ 485]
0000005e`0b38b380 00007ff7`1b6659da ctest!cmCTestMultiProcessHandler::StartTestProcess+0x1050 [E:\cmake\Source\CTest\cmCTestMultiProcessHandler.cxx @ 249]
0000005e`0b38bb90 00007ff7`1b664020 ctest!cmCTestMultiProcessHandler::StartTest+0x18a [E:\cmake\Source\CTest\cmCTestMultiProcessHandler.cxx @ 466]
0000005e`0b38bc30 00007ff7`1b667bdd ctest!cmCTestMultiProcessHandler::StartNextTests+0x640 [E:\cmake\Source\CTest\cmCTestMultiProcessHandler.cxx @ 574]
0000005e`0b38c6f0 00007ff7`1b6e9042 ctest!cmCTestMultiProcessHandler::FinishTestProcess+0x4bd [E:\cmake\Source\CTest\cmCTestMultiProcessHandler.cxx @ 672]
0000005e`0b38c890 00007ff7`1b6e19ec ctest!cmCTestRunTest::FinalizeTest+0x72 [E:\cmake\Source\CTest\cmCTestRunTest.cxx @ 899]
0000005e`0b38c8f0 00007ff7`1b6e131b ctest!cmProcess::Finish+0xac [E:\cmake\Source\CTest\cmProcess.cxx @ 343]
0000005e`0b38c960 00007ff7`1b6e1185 ctest!cmProcess::OnExit+0xab [E:\cmake\Source\CTest\cmProcess.cxx @ 330]
0000005e`0b38c990 00007ff7`1c31b171 ctest!cmProcess::OnExitCB+0x35 [E:\cmake\Source\CTest\cmProcess.cxx @ 303]
0000005e`0b38c9d0 00007ff7`1c2f01c6 ctest!uv_process_proc_exit+0x171 [E:\cmake\Utilities\cmlibuv\src\win\process.c @ 900]
0000005e`0b38ca30 00007ff7`1c2ef075 ctest!uv_process_reqs+0x446 [E:\cmake\Utilities\cmlibuv\src\win\req-inl.h @ 207]
0000005e`0b38caa0 00007ff7`1b661d88 ctest!uv_run+0x65 [E:\cmake\Utilities\cmlibuv\src\win\core.c @ 609]
0000005e`0b38cae0 00007ff7`1b5bfc3f ctest!cmCTestMultiProcessHandler::RunTests+0x88 [E:\cmake\Source\CTest\cmCTestMultiProcessHandler.cxx @ 138]
0000005e`0b38cb20 00007ff7`1b5b2c87 ctest!cmCTestTestHandler::ProcessDirectory+0xb6f [E:\cmake\Source\CTest\cmCTestTestHandler.cxx @ 1389]
0000005e`0b38d0b0 00007ff7`1b4f20c9 ctest!cmCTestTestHandler::ProcessHandler+0x347 [E:\cmake\Source\CTest\cmCTestTestHandler.cxx @ 416]
0000005e`0b38dab0 00007ff7`1b50c03c ctest!cmCTest::ProcessSteps+0x4e9 [E:\cmake\Source\cmCTest.cxx @ 971]
0000005e`0b38e1c0 00007ff7`1b4f12ed ctest!cmCTest::ExecuteTests+0x76c [E:\cmake\Source\cmCTest.cxx @ 2897]
0000005e`0b38e940 00007ff7`1b4e9247 ctest!cmCTest::Run+0xf3d [E:\cmake\Source\cmCTest.cxx @ 2782]
0000005e`0b38f100 00007ff7`1c43a019 ctest!main+0x627 [E:\cmake\Source\ctest.cxx @ 228]
0000005e`0b38f7b0 00007ff7`1c439efe ctest!invoke_main+0x39 [d:\a01\_work\20\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 79]
0000005e`0b38f800 00007ff7`1c439dbe ctest!__scrt_common_main_seh+0x12e [d:\a01\_work\20\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 288]
0000005e`0b38f870 00007ff7`1c43a0ae ctest!__scrt_common_main+0xe [d:\a01\_work\20\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl @ 331]
0000005e`0b38f8a0 00007ffa`5c271350 ctest!mainCRTStartup+0xe [d:\a01\_work\20\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp @ 17]
0000005e`0b38f8d0 00007ffa`5e331e78 KERNEL32!BaseThreadInitThunk+0x10 [clientcore\base\win32\client\thread.c @ 75]
0000005e`0b38f900 00000000`00000000 ntdll!RtlUserThreadStart+0x28 [minkernel\ntdll\rtlstrt.c @ 1166]
Issue was reproduced on Windows 11 (version 22000) with Visual Studio 2022.
Edited by Brad King