diff --git a/test/expectations.txt b/test/expectations.txt index 59b2ff97ecea..187ad6c14c1e 100644 --- a/test/expectations.txt +++ b/test/expectations.txt @@ -86,6 +86,24 @@ test/js/bun/spawn/spawn-maxbuf.test.ts [ FLAKY ] # Tests failed due to ASAN: SEGV on unknown address [ ASAN ] test/integration/next-pages/test/dev-server.test.ts [ CRASH ] +# worker.terminate() lands while a process.* lazy PropertyCallback builder +# (stdout/stderr/stdin/nextTick/mainModule, via setupWorkerStdio) is in JS; +# tryClearException() refuses to clear the TerminationException, so the +# builder returns with it pending and reifyStaticProperty reports the slot +# found, tripping JSC's "ASSERTION FAILED: !scope.exception() || !result" +# in getOwnPropertyDescriptor / JSValue::get. Tracked in #34095; fix PRs +# #33966 and #33418. x64-asan only (e.g. builds 75570, 75601); release +# lanes are unaffected. Remove once either fix PR lands. +[ ASAN ] test/js/node/test/parallel/test-worker-message-port-transfer-terminate.js [ CRASH ] # #34095: JSC assertion when terminate() interrupts a lazy PropertyCallback builder +# The stress test is the bun-owned 8×10-worker amplification of the above, +# but on CI it only ever hits JSC::ExceptionScope::assertNoException at +# ExceptionScope.h:61 (6/6: builds 75493/75495/75514/75597/75604/75606), +# which #33966 reports still reproducing at ~1/4000 workers AFTER its +# lazy-builder fix ("termination landing later in the bootstrap, after the +# stdio builders have completed"). Tracked separately in #34690; this entry +# is NOT removable with the one above. +[ ASAN ] test/js/node/worker_threads/worker-transfer-terminate-stress.test.ts [ CRASH ] # #34690: ExceptionScope::assertNoException during worker terminate bootstrap + # Tests failed due to ASAN: use-after-poison [ ASAN ] test/js/node/test/parallel/test-worker-unref-from-message-during-exit.js [ CRASH ] [ ASAN ] test/napi/napi.test.ts [ CRASH ] # can throw an exception from an async_complete_callback diff --git a/test/js/node/net/node-net.test.ts b/test/js/node/net/node-net.test.ts index 1de9ffb93121..b82972d3691d 100644 --- a/test/js/node/net/node-net.test.ts +++ b/test/js/node/net/node-net.test.ts @@ -963,9 +963,10 @@ it.skipIf(isWindows)( const [stdout, stderr, exitCode] = await Promise.all([proc.stdout.text(), proc.stderr.text(), proc.exited]); expect(stderr).toBe(""); const { before, after, delta } = JSON.parse(stdout.trim().split("\n").pop()!); - // Without the balancing deref: +25 pages (release) / +163 pages - // (debug+ASAN). With it: 0 ± 2. The threshold sits well clear of both. - expect(delta, `mimalloc page count: ${before} -> ${after}`).toBeLessThan(10); + // Without the balancing deref: +25 pages (release) / +163 (debug+ASAN). + // With it the socket delta is 0, but since #34009 JSC shares mimalloc and + // adds up to +14 of heap noise on aarch64/darwin release (build 75589). + expect(delta, `mimalloc page count: ${before} -> ${after}`).toBeLessThan(20); expect(exitCode).toBe(0); }, 60_000,