Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information