Hello, does anyone have a tip on how to work around the "Maximum call stack 
size exceeded" error when running a UBsan-sanitized Emscripten program 
under Node?

The error is:

"RangeError: Maximum call stack size exceeded
    at _emscripten_return_address (a.out.js:6788:35)
    at __ubsan_handle_dynamic_type_cache_miss (wasm-function[8220]:0x210eb3)
    at std::type_info::operator==(std::type_info const&) const 
(wasm-function[938]:0x648b3)
    at is_equal(std::type_info const*, std::type_info const*, bool) 
(wasm-function[8154]:0x20a911)
    at __dynamic_cast (wasm-function[8156]:0x20aa48)
    at __ubsan::checkDynamicType(void*, void*, unsigned long) 
(wasm-function[8196]:0x20f1b9)
    at HandleDynamicTypeCacheMiss(__ubsan::DynamicTypeCacheMissData*, 
unsigned long, unsigned long, __ubsan::ReportOptions) 
(wasm-function[8221]:0x210f03)
    at __ubsan_handle_dynamic_type_cache_miss (wasm-function[8220]:0x210ed7)
    at std::type_info::operator==(std::type_info const&) const 
(wasm-function[938]:0x648b3)
    at is_equal(std::type_info const*, std::type_info const*, bool) 
(wasm-function[8154]:0x20a911)"

I'm not 100% sure, but it seems that the error doesn't indicate a bug in 
the program, because it doesn't appear when compiling a small program 
(e.g., a Googletest binary with 0 tests) and begins to appear even after 
adding unused code (e.g., a bunch of disabled Googletest tests).

I tried passing "--stack_size=8192" to Node, but this didn't help; also, 
when increasing the number (e.g., to 131072) I'm starting to get a 
different error:

RuntimeError: memory access out of bounds
    at __dynamic_cast (wasm-function[8156]:0x20aa0f)
    at __ubsan::checkDynamicType(void*, void*, unsigned long) 
(wasm-function[8196]:0x20f1b9)
    at HandleDynamicTypeCacheMiss(__ubsan::DynamicTypeCacheMissData*, 
unsigned long, unsigned long, __ubsan::ReportOptions) 
(wasm-function[8221]:0x210f03)
    at __ubsan_handle_dynamic_type_cache_miss (wasm-function[8220]:0x210ed7)
    at std::type_info::operator==(std::type_info const&) const 
(wasm-function[938]:0x648b3)
    at is_equal(std::type_info const*, std::type_info const*, bool) 
(wasm-function[8154]:0x20a911)
    at __dynamic_cast (wasm-function[8156]:0x20aa48)
    at __ubsan::checkDynamicType(void*, void*, unsigned long) 
(wasm-function[8196]:0x20f1b9)
    at HandleDynamicTypeCacheMiss(__ubsan::DynamicTypeCacheMissData*, 
unsigned long, unsigned long, __ubsan::ReportOptions) 
(wasm-function[8221]:0x210f03)
    at __ubsan_handle_dynamic_type_cache_miss (wasm-function[8220]:0x210ed7)

Thanks.

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to emscripten-discuss+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/emscripten-discuss/8c9c6b8b-a4b1-427c-965c-5828f8fa8fe9n%40googlegroups.com.

Reply via email to