emscripten-core/emscripten

wasm64.test_safe_stack failure

Closed this issue · 2 comments

juj commented

Running test wasm64.test_safe_stack on Node.js Nightly, I get

======================================================================
FAIL: test_safe_stack (test_core.wasm64.test_safe_stack)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.12/unittest/case.py", line 58, in testPartExecutor
    yield
  File "/usr/lib/python3.12/unittest/case.py", line 634, in run
    self._callTestMethod(testMethod)
  File "/usr/lib/python3.12/unittest/case.py", line 589, in _callTestMethod
    if method() is not None:
       ^^^^^^^^
  File "/home/clb/buildbot/h12dsi-linux-mint22/emscripten_linux_x64/build/emscripten/main/test/test_core.py", line 9162, in test_safe_stack
    self.do_runf('core/test_safe_stack.c',
  File "/home/clb/buildbot/h12dsi-linux-mint22/emscripten_linux_x64/build/emscripten/main/test/common.py", line 2013, in do_runf
    return self._build_and_run(filename, expected_output, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/clb/buildbot/h12dsi-linux-mint22/emscripten_linux_x64/build/emscripten/main/test/common.py", line 2073, 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 1719, in assertContained
    self.assertTrue(re.search(values, string, re.DOTALL), 'Expected regex "%s" to match on:\n%s' % (values, string))
  File "/usr/lib/python3.12/unittest/case.py", line 727, in assertTrue
    raise self.failureException(msg)
AssertionError: None is not true : Expected regex "Aborted\(stack overflow \(Attempt to set SP to 0x[0-9a-fA-F]+, with stack limits \[0x[0-9a-fA-F]+ - 0x[0-9a-fA-F]+\]\)" to match on:
Aborted(stack overflow (Attempt to set SP to 0x00000-30, with stack limits [0x00000000 - 0x00000400]). If you require more stack space build with -sSTACK_SIZE=<bytes>)
/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:549
  var e = new WebAssembly.RuntimeError(what);
          ^

RuntimeError: Aborted(stack overflow (Attempt to set SP to 0x00000-30, with stack limits [0x00000000 - 0x00000400]). If you require more stack space build with -sSTACK_SIZE=<bytes>)
    at abort (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:549:11)
    at ___handle_stack_overflow (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:908:7)
    at test_safe_stack.wasm.f (wasm://wasm/test_safe_stack.wasm-46cc11da:wasm-function[2]:0x1ea)
    at test_safe_stack.wasm.f (wasm://wasm/test_safe_stack.wasm-46cc11da:wasm-function[2]:0x21d)
    at test_safe_stack.wasm.f (wasm://wasm/test_safe_stack.wasm-46cc11da:wasm-function[2]:0x21d)
    at test_safe_stack.wasm.__original_main (wasm://wasm/test_safe_stack.wasm-46cc11da:wasm-function[3]:0x269)
    at test_safe_stack.wasm.main (wasm://wasm/test_safe_stack.wasm-46cc11da:wasm-function[4]:0x292)
    at /tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:1447:49
    at /tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:582:12
    at callMain (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:1480:15)
    at doRun (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:1533:24)
    at run (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:1546:5)
    at removeRunDependency (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:786:11)
    at receiveInstance (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:689:5)
    at receiveInstantiationResult (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:706:12)
    at createWasm (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:732:17)
Thrown at:
    at abort (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:549:11)
    at ___handle_stack_overflow (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:908:7)
    at $f (wasm://wasm/test_safe_stack.wasm-46cc11da:1:491)
    at $f (wasm://wasm/test_safe_stack.wasm-46cc11da:1:542)
    at $f (wasm://wasm/test_safe_stack.wasm-46cc11da:1:542)
    at $__original_main (wasm://wasm/test_safe_stack.wasm-46cc11da:1:618)
    at $main (wasm://wasm/test_safe_stack.wasm-46cc11da:1:659)
    at /tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:1447:49
    at /tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:582:12
    at callMain (/tmp/emtest_9a0dn3s2/emscripten_test_wasm64_jpgk4faf/test_safe_stack.js:1480:15)


Node.js v25.0.0-nightly202507249188563304

Does this show up for anyone else?

Confirmed, I see that too. I also see it with node 24 which is the official release that can run wasm64.

It looks like the reason this slipped through the cracks is that we stopped running wasm64 tests in #23896, back when we were trying to save circleci credits (because we were about to run out).

Interestingly, the test does not fail in wasm64-4gb mode, which we do run in CI.