fix(cli): limit test parallelism on Windows to avoid pipe error (#22776)

One last attempt to fix the parallelism issue on Windows.
This commit is contained in:
Matt Mastracci 2024-03-07 10:04:39 -07:00 committed by GitHub
parent 4791d16a8e
commit 0fdb33c3aa
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 18 additions and 1 deletions

View file

@ -245,6 +245,13 @@ impl TestRun {
unreachable!("Should always be Test subcommand.");
};
// TODO(mmastrac): Temporarily limit concurrency in windows testing to avoid named pipe issue:
// *** Unexpected server pipe failure '"\\\\.\\pipe\\deno_pipe_e30f45c9df61b1e4.1198.222\\0"': 3
// This is likely because we're hitting some sort of invisible resource limit
// This limit is both in cli/lsp/testing/execution.rs and cli/tools/test/mod.rs
#[cfg(windows)]
let concurrent_jobs = std::cmp::min(concurrent_jobs, 4);
let (test_event_sender_factory, mut receiver) = create_test_event_channel();
let fail_fast_tracker = FailFastTracker::new(fail_fast);

View file

@ -1191,8 +1191,18 @@ async fn test_specifiers(
})
});
// TODO(mmastrac): Temporarily limit concurrency in windows testing to avoid named pipe issue:
// *** Unexpected server pipe failure '"\\\\.\\pipe\\deno_pipe_e30f45c9df61b1e4.1198.222\\0"': 3
// This is likely because we're hitting some sort of invisible resource limit
// This limit is both in cli/lsp/testing/execution.rs and cli/tools/test/mod.rs
let concurrent = if cfg!(windows) {
std::cmp::min(concurrent_jobs.get(), 4)
} else {
concurrent_jobs.get()
};
let join_stream = stream::iter(join_handles)
.buffer_unordered(concurrent_jobs.get())
.buffer_unordered(concurrent)
.collect::<Vec<Result<Result<(), AnyError>, tokio::task::JoinError>>>();
let handler = spawn(async move { report_tests(receiver, reporter).await.0 });