summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Mastracci <matthew@mastracci.com>2024-03-07 10:04:39 -0700
committerGitHub <noreply@github.com>2024-03-07 10:04:39 -0700
commit0fdb33c3aa9f4c75d9e15e8a33d9c00116d9052f (patch)
tree244b2e9c92b733543bc486714da39282c3a0448c
parent4791d16a8efc42fb40ffab79bcdae4f0e106cd89 (diff)
fix(cli): limit test parallelism on Windows to avoid pipe error (#22776)
One last attempt to fix the parallelism issue on Windows.
-rw-r--r--cli/lsp/testing/execution.rs7
-rw-r--r--cli/tools/test/mod.rs12
2 files changed, 18 insertions, 1 deletions
diff --git a/cli/lsp/testing/execution.rs b/cli/lsp/testing/execution.rs
index 3c7921c88..02d037996 100644
--- a/cli/lsp/testing/execution.rs
+++ b/cli/lsp/testing/execution.rs
@@ -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);
diff --git a/cli/tools/test/mod.rs b/cli/tools/test/mod.rs
index 13cf9f774..4f500df3d 100644
--- a/cli/tools/test/mod.rs
+++ b/cli/tools/test/mod.rs
@@ -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 });