WASM + Debug
Hi,
Should oneTBB tests pass in Debug configuration on WASM? I've tried using latest emsdk docker container on latest master and followed instructions from https://github.com/oneapi-src/oneTBB/blob/master/WASM_Support.md
docker run --rm -v %CD%:/usr/src -it emscripten/emsdk /bin/bash
Inside container:
emcmake cmake -DCMAKE_CXX_COMPILER=em++ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=emcc -DTBB_STRICT=OFF -DCMAKE_CXX_FLAGS=-Wno-unused-command-line-argument -DTBB_DISABLE_HWLOC_AUTOMATIC_SEARCH=ON -DBUILD_SHARED_LIBS=ON -DTBB_EXAMPLES=ON -DTBB_TEST=ON -B build -S /usr/src/oneTBB-master
cd build
cmake --build . -j
cmake --build .
ctest --output-on-failure
In Release everything works fine. In Debug I'm getting lots of errors. I didn't check all of them, but from scrolling I see this assertion in each test:
3/122 Test #3: test_arena_priorities ....................***Failed 0.08 sec
[doctest] doctest version is "2.4.11"
[doctest] run with "--help" for options
Assertion base > stack_size / 2 failed (located in the calculate_stealing_threshold function, line in file: 565)
Detailed description: Stack anchor calculation overflow
Aborted(native code called abort())
/src/build/clang_19.0_cxx11_32_debug/test_arena_priorities.js:143
throw ex;
^
RuntimeError: Aborted(native code called abort())
at abort (/src/build/clang_19.0_cxx11_32_debug/test_arena_priorities.js:692:41)
at __abort_js (/src/build/clang_19.0_cxx11_32_debug/test_arena_priorities.js:4372:3)
at test_arena_priorities.wasm.abort (wasm://wasm/test_arena_priorities.wasm-026427d6:wasm-function[5250]:0x1367b0)
at test_arena_priorities.wasm.tbb::detail::r1::assertion_failure_impl(char const*, int, char const*, char const*) (wasm://wasm/test_arena_priorities.wasm-026427d6:wasm-function[4326]:0xfa172)
at test_arena_priorities.wasm.tbb::detail::r1::assertion_failure(char const*, int, char const*, char const*)::$_0::operator()() const (wasm://wasm/test_arena_priorities.wasm-026427d6:wasm-function[4325]:0xfa033)
at test_arena_priorities.wasm.void tbb::detail::d0::run_initializer<tbb::detail::r1::assertion_failure(char const*, int, char const*, char const*)::$_0>(tbb::detail::r1::assertion_failure(char const*, int, char const*, char const*)::$_0 const&, std::__2::atomic<tbb::detail::d0::do_once_state>&) (wasm://wasm/test_arena_priorities.wasm-026427d6:wasm-function[4316]:0xf9c03)
at test_arena_priorities.wasm.void tbb::detail::d0::atomic_do_once<tbb::detail::r1::assertion_failure(char const*, int, char const*, char const*)::$_0>(tbb::detail::r1::assertion_failure(char const*, int, char const*, char const*)::$_0 const&, std::__2::atomic<tbb::detail::d0::do_once_state>&) (wasm://wasm/test_arena_priorities.wasm-026427d6:wasm-function[4315]:0xf9b8f)
at test_arena_priorities.wasm.tbb::detail::r1::assertion_failure(char const*, int, char const*, char const*) (wasm://wasm/test_arena_priorities.wasm-026427d6:wasm-function[4314]:0xf9a74)
at test_arena_priorities.wasm.tbb::detail::r1::calculate_stealing_threshold(unsigned long, unsigned long) (wasm://wasm/test_arena_priorities.wasm-026427d6:wasm-function[3175]:0xa81df)
at test_arena_priorities.wasm.tbb::detail::r1::governor::init_external_thread() (wasm://wasm/test_arena_priorities.wasm-026427d6:wasm-function[3870]:0xd5e95)
Node.js v18.20.3
Am I doing something wrong? Do I need to use some older version?
Could you please test on this PR? https://github.com/oneapi-src/oneTBB/pull/1395
Could you please test on this PR? #1395
I've applied 1395.patch on top of yesterday's master
https://gist.github.com/Nekto89/913ba04a4c88401142b44d5e7075d1a3
With timeout 240
The following tests FAILED: 2 - test_allocators (Failed) 5 - test_collaborative_call_once (Failed) 15 - test_parallel_reduce (Timeout) 18 - test_parallel_scan (Failed) 23 - test_task_group (Timeout) 52 - test_tagged_msg (Failed) 71 - conformance_allocators (Failed) 72 - conformance_mutex (Timeout)
Could you provide log for these failures?
Could you provide log for these failures?
Is that gist.github link not publicly available?
Yes, we are able to access it. Thank you for reporting. We are looking into it.
Just rechecked on master 45c247870fa4fd01f39e1568872a092fc6a72a3c
emscripten/emsdk:4.0.6
With timeout 240: 2 - test_allocators (Failed) 5 - test_collaborative_call_once (Failed) 15 - test_parallel_reduce (Failed) 18 - test_parallel_scan (Failed) 23 - test_task_group (Timeout) 53 - test_tagged_msg (Failed) 72 - conformance_allocators (Failed) 73 - conformance_mutex (Timeout)
https://gist.github.com/Nekto89/6105dc5f9e69d53a4824a8da96b71e7c