test: fix the thread-spawn handshake in the WASI threads fixture · nodejs/node@25c81c9 · GitHub
Skip to content

Commit 25c81c9

Browse files
codebytereaduh95
authored andcommitted
test: fix the thread-spawn handshake in the WASI threads fixture
test-wasi-pthread fails now and then on every platform with "Assertion failed: r == 0 (c/pthread.c: main: 17)", i.e. pthread_create() itself reporting an error. The fixture implements `thread-spawn` by starting a Worker and blocking in Atomics.wait(result, 0, 0, 1000) until the worker signals that it has instantiated the module. Two things go wrong there: the worker signals success by storing 0, the value the main thread is already waiting on, so when the worker is quicker than the main thread its notify is lost and the wait runs into the timeout; and one second is not always enough for a Worker to start and instantiate a threads build on the slower CI hosts (arm debug, Windows, macOS). Either way spawn() returns -6 and wasi-libc turns that into a pthread_create() failure. Wait on a sentinel value that neither outcome writes, and give the worker a platform-scaled 30 seconds. Drop the flaky markers. Fixes: #64226 Refs: #59146 Signed-off-by: Shelley Vohr <shelley.vohr@gmail.com> PR-URL: #65780 Refs: #54534 Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day> Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
1 parent cab5dce commit 25c81c9

2 files changed

Lines changed: 4 additions & 8 deletions

File tree

‎test/fixtures/wasi-preview-1.js‎

Lines changed: 4 additions & 1 deletion

‎test/wasi/wasi.status‎

Lines changed: 0 additions & 7 deletions

0 commit comments

Comments
 (0)