From 696668bce4149016e01a23e5e44126ece8cb7521 Mon Sep 17 00:00:00 2001 From: "Kamat, Trivikram" <16024985+trivikr@users.noreply.github.com> Date: Mon, 11 May 2026 19:09:12 -0700 Subject: [PATCH] test: retry crashed cache-test workers once Assisted-by: openai:gpt-5.5 Signed-off-by: Kamat, Trivikram <16024985+trivikr@users.noreply.github.com> --- test/cache-interceptor/cache-tests.mjs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/test/cache-interceptor/cache-tests.mjs b/test/cache-interceptor/cache-tests.mjs index 9bc86a59cc0..bcf05d99518 100644 --- a/test/cache-interceptor/cache-tests.mjs +++ b/test/cache-interceptor/cache-tests.mjs @@ -140,7 +140,8 @@ for (let i = 0; i < testEnvironments.length; i++) { const environment = testEnvironments[i] const port = PORT + i - const promise = new Promise((resolve) => { + const runWorker = () => { + const { promise, resolve } = Promise.withResolvers() const cacheTestsWorkerProcess = fork(join(import.meta.dirname, 'cache-tests-worker.mjs'), { stdio: 'pipe', env: { @@ -177,7 +178,26 @@ for (let i = 0; i < testEnvironments.length; i++) { port }) }) - }) + + return promise + } + + const promise = (async () => { + const result = await runWorker() + if (result.signal === null && (result.code === 0 || result.code === 1)) { + return result + } + + const retryResult = await runWorker() + return { + ...retryResult, + stdout: [ + ...result.stdout, + Buffer.from(`cache-tests worker crashed, retrying once: port=${port} store=${environment.cacheStore ?? 'default'} type=${environment.opts.type ?? 'default'} code=${result.code ?? 'null'} signal=${result.signal ?? 'null'}\n`), + ...retryResult.stdout + ] + } + })() results.push(promise) }