Skip to content

Conversation

juj
Copy link
Collaborator

@juj juj commented Sep 5, 2025

self.do_run_in_out_file_test('pthread/test_pthread_attr_getstack.c')

@node_pthreads
@no_esm_integration('TODO: WASM_ESM_INTEGRATION mode has some asynchronous behavior that causes a failure in this test. https://github.com/emscripten-core/emscripten/issues/25151')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But we run this test in CI (we run the whole esm_integration suite).

It also runs fine for me locally:

$ ./test/runner esm_integration.test_pthread_abort
Running test_core: (1 tests)
test_pthread_abort (test_core.esm_integration.test_pthread_abort) ... ok

----------------------------------------------------------------------
Ran 1 test in 1.059s

OK

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This test is flaky in esm_integration suite specifically, but there is no good mechanism to mark flaky in one suite only, so I thought to skip the test there.

Flipped to use flaky instead, but it overcovers. Maybe that is not a problem.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does it look like when it flakes? Is there some kind of exception, or a timeout?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

http://clbri.com:8010/api/v2/logs/48179/raw_inline

======================================================================
FAIL: test_pthread_abort (test_core.esm_integration.test_pthread_abort)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/clb/.pyenv/versions/3.13.3/lib/python3.13/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/home/clb/.pyenv/versions/3.13.3/lib/python3.13/unittest/case.py", line 651, in run
    self._callTestMethod(testMethod)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/home/clb/.pyenv/versions/3.13.3/lib/python3.13/unittest/case.py", line 606, in _callTestMethod
    if method() is not None:
       ~~~~~~^^
  File "/home/clb/buildbot/h12dsi-linux-mint22/emscripten_linux_x64/build/emscripten/main/test/common.py", line 460, in decorated
    f(self, *args, **kwargs)
    ~^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/clb/buildbot/h12dsi-linux-mint22/emscripten_linux_x64/build/emscripten/main/test/test_core.py", line 2695, in test_pthread_abort
    self.do_run_in_out_file_test('pthread/test_pthread_abort.c', assert_returncode=NON_ZERO)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/clb/buildbot/h12dsi-linux-mint22/emscripten_linux_x64/build/emscripten/main/test/common.py", line 2099, in do_run_in_out_file_test
    output = self._build_and_run(srcfile, expected, **kwargs)
  File "/home/clb/buildbot/h12dsi-linux-mint22/emscripten_linux_x64/build/emscripten/main/test/common.py", line 2150, in _build_and_run
    self.assertContained(o, js_output, regex=regex)
    ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/clb/buildbot/h12dsi-linux-mint22/emscripten_linux_x64/build/emscripten/main/test/common.py", line 1806, in assertContained
    self.fail("Expected to find '%s' in '%s', diff:\n\n%s\n%s" % (
    ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      limit_size(values[0]), limit_size(string), limit_size(diff),
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      additional_info,
      ^^^^^^^^^^^^^^^^
    ))
    ^^
  File "/home/clb/.pyenv/versions/3.13.3/lib/python3.13/unittest/case.py", line 732, in fail
    raise self.failureException(msg)
AssertionError: Expected to find 'onAbort called
' in 'Aborted(native code called abort())
worker: onmessage() captured an uncaught exception: RuntimeError: Aborted(native code called abort())
RuntimeError: Aborted(native code called abort())
    at abort (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:717:11)
    at __abort_js (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1407:7)
    at wasm://wasm/00021066:wasm-function[27]:0xa45
    at wasm://wasm/00021066:wasm-function[22]:0x945
    at wasm://wasm/00021066:wasm-function[26]:0xa30
    at invokeEntryPoint (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1214:42)
    at handleMessage (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:530:11)
    at startWorker (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:487:13)
    at initRuntime (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:669:38)
    at run (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1932:5)
    at Module.init (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:2008:3)
    at self.onmessage (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.pthread.mjs:42:23)
Pthread 0x00012350 sent an error! undefined:undefined: Aborted(native code called abort())

node:internal/event_target:1101
  process.nextTick(() => { throw err; });
                           ^
Error [RuntimeError]: Aborted(native code called abort())
    at abort (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:717:11)
    at __abort_js (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1407:7)
    at wasm://wasm/00021066:wasm-function[27]:0xa45
    at wasm://wasm/00021066:wasm-function[22]:0x945
    at wasm://wasm/00021066:wasm-function[26]:0xa30
    at invokeEntryPoint (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1214:42)
    at handleMessage (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:530:11)
    at startWorker (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:487:13)
    at initRuntime (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:669:38)
    at run (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1932:5)
    at Module.init (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:2008:3)
    at self.onmessage (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.pthread.mjs:42:23)
Thrown at:
    at node:internal/event_target:1101:28
    at processTicksAndRejections (node:internal/process/task_queues:85:11)


Node.js v25.0.0-nightly202507249188563304
', diff:

--- expected
+++ actual
@@ -1,2 +1,40 @@
-onAbort called
+Aborted(native code called abort())
+worker: onmessage() captured an uncaught exception: RuntimeError: Aborted(native code called abort())
+RuntimeError: Aborted(native code called abort())
+    at abort (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:717:11)
+    at __abort_js (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1407:7)
+    at wasm://wasm/00021066:wasm-function[27]:0xa45
+    at wasm://wasm/00021066:wasm-function[22]:0x945
+    at wasm://wasm/00021066:wasm-function[26]:0xa30
+    at invokeEntryPoint (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1214:42)
+    at handleMessage (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:530:11)
+    at startWorker (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:487:13)
+    at initRuntime (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:669:38)
+    at run (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1932:5)
+    at Module.init (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:2008:3)
+    at self.onmessage (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.pthread.mjs:42:23)
+Pthread 0x00012350 sent an error! undefined:undefined: Aborted(native code called abort())

+node:internal/event_target:1101
+  process.nextTick(() => { throw err; });
+                           ^
+Error [RuntimeError]: Aborted(native code called abort())
+    at abort (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:717:11)
+    at __abort_js (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1407:7)
+    at wasm://wasm/00021066:wasm-function[27]:0xa45
+    at wasm://wasm/00021066:wasm-function[22]:0x945
+    at wasm://wasm/00021066:wasm-function[26]:0xa30
+    at invokeEntryPoint (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1214:42)
+    at handleMessage (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:530:11)
+    at startWorker (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:487:13)
+    at initRuntime (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:669:38)
+    at run (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:1932:5)
+    at Module.init (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.support.mjs:2008:3)
+    at self.onmessage (file:///tmp/emtest_4703nlmo/emscripten_test_esm_integration_571fu46r/test_pthread_abort.pthread.mjs:42:23)
+Thrown at:
+    at node:internal/event_target:1101:28
+    at processTicksAndRejections (node:internal/process/task_queues:85:11)
+
+
+Node.js v25.0.0-nightly202507249188563304
+



----------------------------------------------------------------------
Ran 730 tests in 10.874s

self.do_run_in_out_file_test('pthread/test_pthread_attr_getstack.c')

@node_pthreads
@flaky('TODO: WASM_ESM_INTEGRATION is flaky specifically in esm_integration suite. https://github.com/emscripten-core/emscripten/issues/25151')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove TODO: WASM_ESM_INTEGRATION is .

Lgtm, with PR title updated.

@juj juj changed the title Skip esm_integration.test_pthread_abort. Flaky esm_integration.test_pthread_abort. Sep 5, 2025
@juj juj merged commit 0256a8d into emscripten-core:main Sep 5, 2025
3 of 13 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants