mirror of
https://github.com/neovim/neovim.git
synced 2026-11-06 05:16:52 +00:00
ci(windows): MSYS tools sometimes crash with "add_item … failed"
Problem:
On Windows, a test that runs a Git `usr/bin` tool (`cat`, `diff`, …) sometimes stalls 15s and
then fails:
FAILED test/functional/vimscript/system_spec.lua @ 470: systemlist() passing string with linefeed characters as input splits the output on linefeed characters
Expected:
{ "abc", "def", "ghi" }
Actual:
{ ' 0 [main] cat (2736) C:\\Program Files\\Git\\usr\\bin\\cat.exe: *** fatal error - add_item ("\\??\\C:\\Program Files\\Git", "/", ...) failed, errno 1' }
The MSYS runtime sets up per-user shared state on first use. If a test kills an MSYS process
(CTRL-C) during that setup, the next MSYS process (in any parallel test group) waits 15s for
it, then sets it up again and dies.
Solution:
Keep an MSYS process (`sleep infinity`) alive for the test run, so the setup happens only once.
This commit is contained in:
1 parent
139a376a6d
commit
9916944868
1 file changed
+4
@@ -67,6 +67,10 @@ jobs:
|
||||
TEST_TIMEOUT: 600
|
||||
run: |
|
||||
$ErrorActionPreference = 'Continue'
|
||||
# Keep an MSYS process (Git's usr/bin) alive, so the MSYS runtime initializes its shared
|
||||
# state only once. Else a test that kills an MSYS process during that init (CTRL-C) can
|
||||
# make the next one stall 15s and die: "fatal error - add_item (...) failed, errno 1".
|
||||
Start-Process -WindowStyle Hidden (Get-Command sleep.exe).Source infinity
|
||||
# `-k 0` tells ninja to continue running all targets even if some fail.
|
||||
cmake --build build --target functionaltest-parallel -j 2 -- -k 0
|
||||
$exitCode = $LASTEXITCODE
|
||||
|
||||
Reference in new issue
Block a user