tools: run test-asan on ubuntu-latest
Closes: https://github.com/nodejs/node/issues/45578
The only way to know if it works is to try.
Review requested:
- [ ] @nodejs/actions
If it still fails, I hope we can use this PR to collaborate on finding a real fix for https://github.com/nodejs/node/issues/45578.
===
=== 9 tests failed
===
Failed tests:
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-single-executable-application.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-single-executable-application-assets.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-single-executable-application-assets-raw.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-single-executable-application-disable-experimental-sea-warning.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-single-executable-application-empty.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-single-executable-application-snapshot.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-single-executable-application-snapshot-and-code-cache.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-single-executable-application-use-code-cache.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/abort/test-signal-handler.js
=== release test-single-executable-application ===
Path: sequential/test-single-executable-application
Error: --- stderr ---
[process 177986]: --- stderr ---
=================================================================
==177986==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete []) on 0x602000000050
#0 0x55c2c68b5acd in operator delete[](void*) (/home/runner/work/node/node/test/.tmp.4102/sea+0x1ab5acd) (BuildId: 790abd3d700c[5596](https://github.com/nodejs/node/actions/runs/8567708081/job/23480032918?pr=52374#step:6:5597)3374b7aaca574c0d1b29db72)
#1 0x7f2067505b6c in std::__cxx11::collate<char>::do_transform(char const*, char const*) const (/lib/x86_64-linux-gnu/libstdc++.so.6+0x105b6c) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
#2 0x55c2c6ba3f40 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::'lambda'()::operator()() const (/home/runner/work/node/node/test/.tmp.4102/sea+0x1da3f40) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#3 0x55c2c6ba1421 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_ready() (/home/runner/work/node/node/test/.tmp.4102/sea+0x1da1421) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#4 0x55c2c6b9b310 in void std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_insert_character_class_matcher<false, false>() (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d9b310) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#5 0x55c2c6b94919 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom() (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d94919) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#6 0x55c2c6b8fa66 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative() (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d8fa66) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#7 0x55c2c6b89826 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction() (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d89826) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#8 0x55c2c6b880e0 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d880e0) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#9 0x55c2c6b8743b in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::_M_compile(char const*, char const*, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d8743b) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#10 0x55c2c6790cf2 in _GLOBAL__sub_I_node_dotenv.cc node_dotenv.cc
#11 0x7f2067029eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#12 0x55c2c67f7554 in _start (/home/runner/work/node/node/test/.tmp.4102/sea+0x19f7554) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
0x602000000050 is located 0 bytes inside of 2-byte region [0x602000000050,0x602000000052)
allocated by thread T0 here:
#0 0x55c2c687a39e in malloc (/home/runner/work/node/node/test/.tmp.4102/sea+0x1a7a39e) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7f20674b751b in operator new(unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xb751b) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/home/runner/work/node/node/test/.tmp.4102/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72) in operator delete[](void*)
==177986==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
==177986==ABORTING
[process 177986]: --- stdout ---
[process 177986]: status = 1, signal = null
/home/runner/work/node/node/test/common/child_process.js:86
throw new Error(`${failures.join('\n')}`);
^
Error: - process terminated with status 1, expected 0
at logAndThrow (/home/runner/work/node/node/test/common/child_process.js:86:11)
at expectSyncExit (/home/runner/work/node/node/test/common/child_process.js:91:5)
at spawnSyncAndA
=== release test-single-executable-application-assets ===
Path: sequential/test-single-executable-application-assets
Error: --- stderr ---
[process 178303]: --- stderr ---
=================================================================
==178303==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete []) on 0x602000000050
#0 0x563b096b5acd in operator delete[](void*) (/home/runner/work/node/node/test/.tmp.4103/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7fd018505b6c in std::__cxx11::collate<char>::do_transform(char const*, char const*) const (/lib/x86_64-linux-gnu/libstdc++.so.6+0x105b6c) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
#2 0x563b099a3f40 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::'lambda'()::operator()() const (/home/runner/work/node/node/test/.tmp.4103/sea+0x1da3f40) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#3 0x563b099a1421 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_ready() (/home/runner/work/node/node/test/.tmp.4103/sea+0x1da1421) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#4 0x563b0999b310 in void std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_insert_character_class_matcher<false, false>() (/home/runner/work/node/node/test/.tmp.4103/sea+0x1d9b310) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#5 0x563b09994919 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom() (/home/runner/work/node/node/test/.tmp.4103/sea+0x1d94919) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#6 0x563b0998fa66 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative() (/home/runner/work/node/node/test/.tmp.4103/sea+0x1d8fa66) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#7 0x563b09989826 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction() (/home/runner/work/node/node/test/.tmp.4103/sea+0x1d89826) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#8 0x563b099880e0 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4103/sea+0x1d880e0) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#9 0x563b0998743b in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::_M_compile(char const*, char const*, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4103/sea+0x1d8743b) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#10 0x563b09590cf2 in _GLOBAL__sub_I_node_dotenv.cc node_dotenv.cc
#11 0x7fd018029eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#12 0x563b095f7554 in _start (/home/runner/work/node/node/test/.tmp.4103/sea+0x19f7554) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
0x602000000050 is located 0 bytes inside of 2-byte region [0x602000000050,0x602000000052)
allocated by thread T0 here:
#0 0x563b0967a39e in malloc (/home/runner/work/node/node/test/.tmp.4103/sea+0x1a7a39e) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7fd0184b751b in operator new(unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xb751b) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/home/runner/work/node/node/test/.tmp.4103/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72) in operator delete[](void*)
==178303==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
==178303==ABORTING
[process 178303]: --- stdout ---
[process 178303]: status = 1, signal = null
/home/runner/work/node/node/test/common/child_process.js:86
throw new Error(`${failures.join('\n')}`);
^
Error: - process terminated with status 1, expected 0
at logAndThrow (/home/runner/work/node/node/test/common/child_process.js:86:11)
at expectSyncExit (/home/runner/work/node/node/test/common/child_process.js:91:5)
at spawnSyncAndA
=== release test-single-executable-application-assets-raw ===
Path: sequential/test-single-executable-application-assets-raw
Error: --- stderr ---
[process 178725]: --- stderr ---
=================================================================
==178725==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete []) on 0x602000000050
#0 0x55ba444b5acd in operator delete[](void*) (/home/runner/work/node/node/test/.tmp.4104/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7f027b305b6c in std::__cxx11::collate<char>::do_transform(char const*, char const*) const (/lib/x86_64-linux-gnu/libstdc++.so.6+0x105b6c) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
#2 0x55ba447a3f40 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::'lambda'()::operator()() const (/home/runner/work/node/node/test/.tmp.4104/sea+0x1da3f40) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#3 0x55ba447a1421 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_ready() (/home/runner/work/node/node/test/.tmp.4104/sea+0x1da1421) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#4 0x55ba4479b310 in void std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_insert_character_class_matcher<false, false>() (/home/runner/work/node/node/test/.tmp.4104/sea+0x1d9b310) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#5 0x55ba44794919 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom() (/home/runner/work/node/node/test/.tmp.4104/sea+0x1d94919) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#6 0x55ba4478fa66 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative() (/home/runner/work/node/node/test/.tmp.4104/sea+0x1d8fa66) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#7 0x55ba44789826 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction() (/home/runner/work/node/node/test/.tmp.4104/sea+0x1d89826) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#8 0x55ba447880e0 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4104/sea+0x1d880e0) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#9 0x55ba4478743b in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::_M_compile(char const*, char const*, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4104/sea+0x1d8743b) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#10 0x55ba44390cf2 in _GLOBAL__sub_I_node_dotenv.cc node_dotenv.cc
#11 0x7f027ae29eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#12 0x55ba443f7554 in _start (/home/runner/work/node/node/test/.tmp.4104/sea+0x19f7554) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
0x602000000050 is located 0 bytes inside of 2-byte region [0x602000000050,0x602000000052)
allocated by thread T0 here:
#0 0x55ba4447a39e in malloc (/home/runner/work/node/node/test/.tmp.4104/sea+0x1a7a39e) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7f027b2b751b in operator new(unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xb751b) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/home/runner/work/node/node/test/.tmp.4104/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72) in operator delete[](void*)
==178725==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
==178725==ABORTING
[process 178725]: --- stdout ---
[process 178725]: status = 1, signal = null
/home/runner/work/node/node/test/common/child_process.js:86
throw new Error(`${failures.join('\n')}`);
^
Error: - process terminated with status 1, expected 0
at logAndThrow (/home/runner/work/node/node/test/common/child_process.js:86:11)
at expectSyncExit (/home/runner/work/node/node/test/common/child_process.js:91:5)
at spawnSyncAndE
=== release test-single-executable-application-disable-experimental-sea-warning ===
Path: sequential/test-single-executable-application-disable-experimental-sea-warning
Error: --- stderr ---
[process 179019]: --- stderr ---
=================================================================
==179019==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete []) on 0x602000000050
#0 0x55b68e6b5acd in operator delete[](void*) (/home/runner/work/node/node/test/.tmp.4105/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7f1b0e905b6c in std::__cxx11::collate<char>::do_transform(char const*, char const*) const (/lib/x86_64-linux-gnu/libstdc++.so.6+0x105b6c) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
#2 0x55b68e9a3f40 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::'lambda'()::operator()() const (/home/runner/work/node/node/test/.tmp.4105/sea+0x1da3f40) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#3 0x55b68e9a1421 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_ready() (/home/runner/work/node/node/test/.tmp.4105/sea+0x1da1421) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#4 0x55b68e99b310 in void std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_insert_character_class_matcher<false, false>() (/home/runner/work/node/node/test/.tmp.4105/sea+0x1d9b310) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#5 0x55b68e994919 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom() (/home/runner/work/node/node/test/.tmp.4105/sea+0x1d94919) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#6 0x55b68e98fa66 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative() (/home/runner/work/node/node/test/.tmp.4105/sea+0x1d8fa66) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#7 0x55b68e989826 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction() (/home/runner/work/node/node/test/.tmp.4105/sea+0x1d89826) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#8 0x55b68e9880e0 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4105/sea+0x1d880e0) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#9 0x55b68e98743b in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::_M_compile(char const*, char const*, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4105/sea+0x1d8743b) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#10 0x55b68e590cf2 in _GLOBAL__sub_I_node_dotenv.cc node_dotenv.cc
#11 0x7f1b0e429eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#12 0x55b68e5f7554 in _start (/home/runner/work/node/node/test/.tmp.4105/sea+0x19f7554) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
0x602000000050 is located 0 bytes inside of 2-byte region [0x602000000050,0x602000000052)
allocated by thread T0 here:
#0 0x55b68e67a39e in malloc (/home/runner/work/node/node/test/.tmp.4105/sea+0x1a7a39e) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7f1b0e8b751b in operator new(unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xb751b) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/home/runner/work/node/node/test/.tmp.4105/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72) in operator delete[](void*)
==179019==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
==179019==ABORTING
[process 179019]: --- stdout ---
[process 179019]: status = 1, signal = null
/home/runner/work/node/node/test/common/child_process.js:86
throw new Error(`${failures.join('\n')}`);
^
Error: - process terminated with status 1, expected 0
at logAndThrow (/home/runner/work/node/node/test/common/child_process.js:86:11)
at expectSyncExit (/home/runner/work/node/node/test/common/child_process.js:91:5)
at spawnSyncAndA
=== release test-single-executable-application-empty ===
Path: sequential/test-single-executable-application-empty
Error: --- stderr ---
[process 179319]: --- stderr ---
=================================================================
==179319==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete []) on 0x602000000050
#0 0x55a4ca2b5acd in operator delete[](void*) (/home/runner/work/node/node/test/.tmp.4106/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7f787d705b6c in std::__cxx11::collate<char>::do_transform(char const*, char const*) const (/lib/x86_64-linux-gnu/libstdc++.so.6+0x105b6c) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
#2 0x55a4ca5a3f40 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::'lambda'()::operator()() const (/home/runner/work/node/node/test/.tmp.4106/sea+0x1da3f40) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#3 0x55a4ca5a1421 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_ready() (/home/runner/work/node/node/test/.tmp.4106/sea+0x1da1421) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#4 0x55a4ca59b310 in void std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_insert_character_class_matcher<false, false>() (/home/runner/work/node/node/test/.tmp.4106/sea+0x1d9b310) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#5 0x55a4ca594919 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom() (/home/runner/work/node/node/test/.tmp.4106/sea+0x1d94919) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#6 0x55a4ca58fa66 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative() (/home/runner/work/node/node/test/.tmp.4106/sea+0x1d8fa66) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#7 0x55a4ca589826 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction() (/home/runner/work/node/node/test/.tmp.4106/sea+0x1d89826) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#8 0x55a4ca5880e0 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4106/sea+0x1d880e0) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#9 0x55a4ca58743b in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::_M_compile(char const*, char const*, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4106/sea+0x1d8743b) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#10 0x55a4ca190cf2 in _GLOBAL__sub_I_node_dotenv.cc node_dotenv.cc
#11 0x7f787d229eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#12 0x55a4ca1f7554 in _start (/home/runner/work/node/node/test/.tmp.4106/sea+0x19f7554) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
0x602000000050 is located 0 bytes inside of 2-byte region [0x602000000050,0x602000000052)
allocated by thread T0 here:
#0 0x55a4ca27a39e in malloc (/home/runner/work/node/node/test/.tmp.4106/sea+0x1a7a39e) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7f787d6b751b in operator new(unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xb751b) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/home/runner/work/node/node/test/.tmp.4106/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72) in operator delete[](void*)
==179319==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
==179319==ABORTING
[process 179319]: --- stdout ---
[process 179319]: status = 1, signal = null
/home/runner/work/node/node/test/common/child_process.js:86
throw new Error(`${failures.join('\n')}`);
^
Error: - process terminated with status 1, expected 0
at logAndThrow (/home/runner/work/node/node/test/common/child_process.js:86:11)
at expectSyncExit (/home/runner/work/node/node/test/common/child_process.js:91:5)
at spawnSyncAndE
=== release test-single-executable-application-snapshot ===
Path: sequential/test-single-executable-application-snapshot
Error: --- stderr ---
[process 179625]: --- stderr ---
=================================================================
==179625==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete []) on 0x602000000050
#0 0x55bc38eb5acd in operator delete[](void*) (/home/runner/work/node/node/test/.tmp.4107/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7fa4f6105b6c in std::__cxx11::collate<char>::do_transform(char const*, char const*) const (/lib/x86_64-linux-gnu/libstdc++.so.6+0x105b6c) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
#2 0x55bc391a3f40 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::'lambda'()::operator()() const (/home/runner/work/node/node/test/.tmp.4107/sea+0x1da3f40) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#3 0x55bc391a1421 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_ready() (/home/runner/work/node/node/test/.tmp.4107/sea+0x1da1421) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#4 0x55bc3919b310 in void std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_insert_character_class_matcher<false, false>() (/home/runner/work/node/node/test/.tmp.4107/sea+0x1d9b310) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#5 0x55bc39194919 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom() (/home/runner/work/node/node/test/.tmp.4107/sea+0x1d94919) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#6 0x55bc3918fa66 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative() (/home/runner/work/node/node/test/.tmp.4107/sea+0x1d8fa66) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#7 0x55bc39189826 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction() (/home/runner/work/node/node/test/.tmp.4107/sea+0x1d89826) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#8 0x55bc391880e0 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4107/sea+0x1d880e0) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#9 0x55bc3918743b in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::_M_compile(char const*, char const*, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4107/sea+0x1d8743b) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#10 0x55bc38d90cf2 in _GLOBAL__sub_I_node_dotenv.cc node_dotenv.cc
#11 0x7fa4f5c29eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#12 0x55bc38df7554 in _start (/home/runner/work/node/node/test/.tmp.4107/sea+0x19f7554) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
0x602000000050 is located 0 bytes inside of 2-byte region [0x602000000050,0x602000000052)
allocated by thread T0 here:
#0 0x55bc38e7a39e in malloc (/home/runner/work/node/node/test/.tmp.4107/sea+0x1a7a39e) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7fa4f60b751b in operator new(unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xb751b) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/home/runner/work/node/node/test/.tmp.4107/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72) in operator delete[](void*)
==179625==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
==179625==ABORTING
[process 179625]: --- stdout ---
[process 179625]: status = 1, signal = null
/home/runner/work/node/node/test/common/child_process.js:86
throw new Error(`${failures.join('\n')}`);
^
Error: - process terminated with status 1, expected 0
at logAndThrow (/home/runner/work/node/node/test/common/child_process.js:86:11)
at expectSyncExit (/home/runner/work/node/node/test/common/child_process.js:91:5)
at spawnSyncAndA
=== release test-single-executable-application-snapshot-and-code-cache ===
Path: sequential/test-single-executable-application-snapshot-and-code-cache
Error: --- stderr ---
[process 180004]: --- stderr ---
=================================================================
==180004==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete []) on 0x602000000050
#0 0x558755eb5acd in operator delete[](void*) (/home/runner/work/node/node/test/.tmp.4108/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7fb8e8b05b6c in std::__cxx11::collate<char>::do_transform(char const*, char const*) const (/lib/x86_64-linux-gnu/libstdc++.so.6+0x105b6c) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
#2 0x5587561a3f40 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::'lambda'()::operator()() const (/home/runner/work/node/node/test/.tmp.4108/sea+0x1da3f40) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#3 0x5587561a1421 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_ready() (/home/runner/work/node/node/test/.tmp.4108/sea+0x1da1421) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#4 0x55875619b310 in void std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_insert_character_class_matcher<false, false>() (/home/runner/work/node/node/test/.tmp.4108/sea+0x1d9b310) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#5 0x558756194919 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom() (/home/runner/work/node/node/test/.tmp.4108/sea+0x1d94919) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#6 0x5587[5618](https://github.com/nodejs/node/actions/runs/8567708081/job/23480032918?pr=52374#step:6:5619)fa66 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative() (/home/runner/work/node/node/test/.tmp.4108/sea+0x1d8fa66) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#7 0x558756189826 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction() (/home/runner/work/node/node/test/.tmp.4108/sea+0x1d89826) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#8 0x5587561880e0 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4108/sea+0x1d880e0) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#9 0x55875618743b in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::_M_compile(char const*, char const*, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4108/sea+0x1d8743b) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#10 0x558755d90cf2 in _GLOBAL__sub_I_node_dotenv.cc node_dotenv.cc
#11 0x7fb8e8629eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#12 0x558755df7554 in _start (/home/runner/work/node/node/test/.tmp.4108/sea+0x19f7554) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
0x602000000050 is located 0 bytes inside of 2-byte region [0x602000000050,0x602000000052)
allocated by thread T0 here:
#0 0x558755e7a39e in malloc (/home/runner/work/node/node/test/.tmp.4108/sea+0x1a7a39e) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7fb8e8ab751b in operator new(unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xb751b) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/home/runner/work/node/node/test/.tmp.4108/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72) in operator delete[](void*)
==180004==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
==180004==ABORTING
[process 180004]: --- stdout ---
[process 180004]: status = 1, signal = null
/home/runner/work/node/node/test/common/child_process.js:86
throw new Error(`${failures.join('\n')}`);
^
Error: - process terminated with status 1, expected 0
at logAndThrow (/home/runner/work/node/node/test/common/child_process.js:86:11)
at expectSyncExit (/home/runner/work/node/node/test/common/child_process.js:91:5)
at spawnSyncAndA
=== release test-single-executable-application-use-code-cache ===
Path: sequential/test-single-executable-application-use-code-cache
Error: --- stderr ---
[process 180312]: --- stderr ---
=================================================================
==180312==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete []) on 0x602000000050
#0 0x55a84e6b5acd in operator delete[](void*) (/home/runner/work/node/node/test/.tmp.4109/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7f4f16f05b6c in std::__cxx11::collate<char>::do_transform(char const*, char const*) const (/lib/x86_64-linux-gnu/libstdc++.so.6+0x105b6c) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
#2 0x55a84e9a3f40 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::'lambda'()::operator()() const (/home/runner/work/node/node/test/.tmp.4109/sea+0x1da3f40) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#3 0x55a84e9a1421 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_ready() (/home/runner/work/node/node/test/.tmp.4109/sea+0x1da1421) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#4 0x55a84e99b310 in void std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_insert_character_class_matcher<false, false>() (/home/runner/work/node/node/test/.tmp.4109/sea+0x1d9b310) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#5 0x55a84e994919 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom() (/home/runner/work/node/node/test/.tmp.4109/sea+0x1d94919) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#6 0x55a84e98fa66 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative() (/home/runner/work/node/node/test/.tmp.4109/sea+0x1d8fa66) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#7 0x55a84e989826 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction() (/home/runner/work/node/node/test/.tmp.4109/sea+0x1d89826) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#8 0x55a84e9880e0 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4109/sea+0x1d880e0) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#9 0x55a84e98743b in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::_M_compile(char const*, char const*, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4109/sea+0x1d8743b) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#10 0x55a84e590cf2 in _GLOBAL__sub_I_node_dotenv.cc node_dotenv.cc
#11 0x7f4f16a29eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#12 0x55a84e5f7554 in _start (/home/runner/work/node/node/test/.tmp.4109/sea+0x19f7554) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
0x602000000050 is located 0 bytes inside of 2-byte region [0x602000000050,0x602000000052)
allocated by thread T0 here:
#0 0x55a84e67a39e in malloc (/home/runner/work/node/node/test/.tmp.4109/sea+0x1a7a39e) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#1 0x7f4f16eb751b in operator new(unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xb751b) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/home/runner/work/node/node/test/.tmp.4109/sea+0x1ab5acd) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72) in operator delete[](void*)
==180312==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
==180312==ABORTING
[process 180312]: --- stdout ---
[process 180312]: status = 1, signal = null
/home/runner/work/node/node/test/common/child_process.js:86
throw new Error(`${failures.join('\n')}`);
^
Error: - process terminated with status 1, expected 0
at logAndThrow (/home/runner/work/node/node/test/common/child_process.js:86:11)
at expectSyncExit (/home/runner/work/node/node/test/common/child_process.js:91:5)
at spawnSyncAndA
=== release test-signal-handler ===
Path: abort/test-signal-handler
Error: --- stderr ---
# /home/runner/work/node/node/out/Release/node[182524]: void node::Chdir(const FunctionCallbackInfo<v8::Value> &) at ../src/node_process_methods.cc:83
# Assertion failed: (args.Length()) == (1)
----- Native stack trace -----
1: 0x558380b6c01f node::DumpNativeBacktrace(_IO_FILE*) [/home/runner/work/node/node/out/Release/node]
2: 0x558380de9245 node::Assert(node::AssertionInfo const&) [/home/runner/work/node/node/out/Release/node]
3: 0x558380f9b747 [/home/runner/work/node/node/out/Release/node]
4: 0x7ffd49c398f0
----- JavaScript stack trace -----
1: /home/runner/work/node/node/test/abort/test-signal-handler.js:15:3
2: Module._compile (node:internal/modules/cjs/loader:1421:14)
3: Module._extensions..js (node:internal/modules/cjs/loader:1499:10)
4: Module.load (node:internal/modules/cjs/loader:1232:32)
5: Module._load (node:internal/modules/cjs/loader:1048:12)
6: executeUserEntryPoint (node:internal/modules/run_main:187:14)
7: node:internal/main/run_main_module:28:49
node:assert:408
throw err;
^
AssertionError [ERR_ASSERTION]: child.signal = SIGABRT
at Object.<anonymous> (/home/runner/work/node/node/test/abort/test-signal-handler.js:23:3)
at Module._compile (node:internal/modules/cjs/loader:1421:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1499:10)
at Module.load (node:internal/modules/cjs/loader:1232:32)
at Module._load (node:internal/modules/cjs/loader:1048:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:187:14)
at node:internal/main/run_main_module:28:49 {
generatedMessage: false,
code: 'ERR_ASSERTION',
actual: false,
expected: true,
operator: '=='
}
Node.js v22.0.0-pre
Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/abort/test-signal-handler.js
/cc @nodejs/single-executable
I hoped to get more information from a debug build but it's not reproducible with it!
Should we try with --debug-node to see if that would also workaround the issue? Hopefully that should reduce the build time.
--debug-node shows the same errors.
I suggest to wait for https://github.com/nodejs/node/pull/52406 and retry.
I suggest to wait for https://github.com/nodejs/node/pull/52406 and retry.
How is this related to dotenv? Sorry, I couldn't find the connection @targos
Guess based on the stack trace:
==177986==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete []) on 0x602000000050
#0 0x55c2c68b5acd in operator delete[](void*) (/home/runner/work/node/node/test/.tmp.4102/sea+0x1ab5acd) (BuildId: 790abd3d700c[5596](https://github.com/nodejs/node/actions/runs/8567708081/job/23480032918?pr=52374#step:6:5597)3374b7aaca574c0d1b29db72)
#1 0x7f2067505b6c in std::__cxx11::collate<char>::do_transform(char const*, char const*) const (/lib/x86_64-linux-gnu/libstdc++.so.6+0x105b6c) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
#2 0x55c2c6ba3f40 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_apply(char, std::integral_constant<bool, false>) const::'lambda'()::operator()() const (/home/runner/work/node/node/test/.tmp.4102/sea+0x1da3f40) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#3 0x55c2c6ba1421 in std::__detail::_BracketMatcher<std::__cxx11::regex_traits<char>, false, false>::_M_ready() (/home/runner/work/node/node/test/.tmp.4102/sea+0x1da1421) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#4 0x55c2c6b9b310 in void std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_insert_character_class_matcher<false, false>() (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d9b310) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#5 0x55c2c6b94919 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_atom() (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d94919) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#6 0x55c2c6b8fa66 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_alternative() (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d8fa66) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#7 0x55c2c6b89826 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_M_disjunction() (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d89826) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#8 0x55c2c6b880e0 in std::__detail::_Compiler<std::__cxx11::regex_traits<char> >::_Compiler(char const*, char const*, std::locale const&, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d880e0) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#9 0x55c2c6b8743b in std::__cxx11::basic_regex<char, std::__cxx11::regex_traits<char> >::_M_compile(char const*, char const*, std::regex_constants::syntax_option_type) (/home/runner/work/node/node/test/.tmp.4102/sea+0x1d8743b) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
#10 0x55c2c6790cf2 in _GLOBAL__sub_I_node_dotenv.cc node_dotenv.cc
#11 0x7f2067029eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#12 0x55c2c67f7554 in _start (/home/runner/work/node/node/test/.tmp.4102/sea+0x19f7554) (BuildId: 790abd3d700c55963374b7aaca574c0d1b29db72)
@nodejs/cpp-reviewers Does this make sense to you?
[process 179535]: --- stderr ---
=================================================================
==179535==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete) on 0x603000000430
#0 0x55a691aac89d in operator delete(void*) (/home/runner/work/node/node/test/.tmp.4156/sea+0x1eac89d) (BuildId: 446fbb0b10fb3104b8ae2466b95dd5853f3e4696)
#1 0x55a6922ee741 in node::options_parser::OptionsParser<node::EnvironmentOptions>::AddAlias(char const*, char const*) /home/runner/work/node/node/out/../src/node_options-inl.h:106
#2 0x55a6922d51a6 in node::options_parser::EnvironmentOptionsParser::EnvironmentOptionsParser() /home/runner/work/node/node/out/../src/node_options.cc:761:32
#3 0x55a6922e4a10 in node::options_parser::EnvironmentOptionsParser::EnvironmentOptionsParser(node::options_parser::DebugOptionsParser const&) /home/runner/work/node/node/out/../src/node_options-inl.h:351:19
#4 0x55a6919b2506 in __cxx_global_var_init.44 /home/runner/work/node/node/out/../src/quic/data.cc:281:44
#5 0x55a6919b25d3 in _GLOBAL__sub_I_node_options.cc /home/runner/work/node/node/out/../src/quic/data.cc
#6 0x7f7ac5c29eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
#7 0x55a6919ee424 in _start (/home/runner/work/node/node/test/.tmp.4156/sea+0x1dee424) (BuildId: 446fbb0b10fb3104b8ae2466b95dd5853f3e4696)
0x603000000430 is located 0 bytes inside of 31-byte region [0x603000000430,0x60300000044f)
allocated by thread T0 here:
#0 0x55a691a7126e in malloc (/home/runner/work/node/node/test/.tmp.4156/sea+0x1e7126e) (BuildId: 446fbb0b10fb3104b8ae2466b95dd5853f3e4696)
#1 0x7f7ac60b751b in operator new(unsigned long) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xb751b) (BuildId: 2db998bd67acbfb235c464c0275d4070061695fb)
#2 0x55a691ac458c in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/optional:1001:6
#3 0x55a6922ee5d9 in node::options_parser::OptionsParser<node::EnvironmentOptions>::AddAlias(char const*, char const*) /home/runner/work/node/node/out/../src/node_options-inl.h
#4 0x55a6922d51a6 in node::options_parser::EnvironmentOptionsParser::EnvironmentOptionsParser() /home/runner/work/node/node/out/../src/node_options.cc:761:32
#5 0x55a6922e4a10 in node::options_parser::EnvironmentOptionsParser::EnvironmentOptionsParser(node::options_parser::DebugOptionsParser const&) /home/runner/work/node/node/out/../src/node_options-inl.h:351:19
#6 0x55a6919b2506 in __cxx_global_var_init.44 /home/runner/work/node/node/out/../src/quic/data.cc:281:44
#7 0x55a6919b25d3 in _GLOBAL__sub_I_node_options.cc /home/runner/work/node/node/out/../src/quic/data.cc
#8 0x7f7ac5c29eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: c289da5071a3399de893d2af81d6a30c62646e1e)
SUMMARY: AddressSanitizer: alloc-dealloc-mismatch (/home/runner/work/node/node/test/.tmp.4156/sea+0x1eac89d) (BuildId: 446fbb0b10fb3104b8ae2466b95dd5853f3e4696) in operator delete(void*)
==179535==HINT: if you don't care about these errors you may set ASAN_OPTIONS=alloc_dealloc_mismatch=0
==179535==ABORTING
What I understand is it points to
https://github.com/nodejs/node/blob/97627da32b79cb6ba6bfe8af576c47f30db4a672/src/node_options-inl.h#L119-L123
Where an array is allocated.
Then somewhere we use delete instead of delete[] to deallocate it, but I don't see where it happens.
Line 106 seems to be...
https://github.com/nodejs/node/blob/97627da32b79cb6ba6bfe8af576c47f30db4a672/src/node_options-inl.h#L106
called from
https://github.com/nodejs/node/blob/97627da32b79cb6ba6bfe8af576c47f30db4a672/src/node_options.cc#L761
What I see are reports about an issue in old code contributed by @addaleax
It seems unclear to me (though not impossible) there there is a defect in this code. Possibly we are encountering a false positive.
Something does not add up. The trace has...
node::options_parser::OptionsParser<node::EnvironmentOptions>::AddAlias(char const*, char const*) /home/runner/work/node/node/out/../src/node_options-inl.h:106
But AddAlias(char const*, char const*) is not on line 106, rather it appears on line 120.
CI: https://ci.nodejs.org/job/node-test-pull-request/58483/
Let us try to rerun the tests.
rebased
Since the problem only happens with SEA tests, where the binary is patched, it's possible that the debug output is a red herring.
it's possible that the debug output is a red herring.
Right. So we are being mislead as to where the issue is actually happening?
It's a hypothesis. I don't really know what's happening.
Oh, results with latest Clang are much more interesting!
https://github.com/nodejs/node/actions/runs/9106598364/job/25034057819?pr=52374
Here are all the errors from the above actions run
=== release test-cli-node-options ===
Path: parallel/test-cli-node-options
Error: Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-cli-node-options.js
--- CRASHED (Signal: 11) ---
=== release test-worker-http2-stream-terminate ===
Path: parallel/test-worker-http2-stream-terminate
Error: --- stderr ---
undefined:0
RangeError: Maximum call stack size exceeded
Node.js v23.0.0-pre
=================================================================
==152531==ERROR: AddressSanitizer: heap-use-after-free on address 0x50d0000006c0 at pc 0x55df3f717216 bp 0x7f84105fd210 sp 0x7f84105fd208
READ of size 8 at 0x50d0000006c0 thread T15
Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-http2-stream-terminate.js
--- CRASHED (Signal: 6) ---
=== release test-worker-memory ===
Path: parallel/test-worker-memory
Error: --- stderr ---
undefined:0
RangeError: Maximum call stack size exceeded
Node.js v23.0.0-pre
=================================================================
==152611==ERROR: AddressSanitizer: heap-use-after-free on address 0x529000001028 at pc 0x560311ded7fe bp 0x7fed753fea20 sp 0x7fed753fea18
READ of size 8 at 0x529000001028 thread T38
#0 0x560311ded7fd in int v8::internal::Deserializer<v8::internal::Isolate>::ReadApiReference<v8::internal::SlotAccessorForHeapObject>(unsigned char, v8::internal::SlotAccessorForHeapObject) (/home/runner/work/node/node/out/Release/node+0x39ed7fd) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#1 0x560311dd82e9 in v8::internal::Deserializer<v8::internal::Isolate>::ReadObject(v8::internal::SnapshotSpace) (/home/runner/work/node/node/out/Release/node+0x39d82e9) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#2 0x560311ddab85 in int v8::internal::Deserializer<v8::internal::Isolate>::ReadSingleBytecodeData<v8::internal::SlotAccessorForHeapObject>(unsigned char, v8::internal::SlotAccessorForHeapObject) (/home/runner/work/node/node/out/Release/node+0x39dab85) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#3 0x560311dd82e9 in v8::internal::Deserializer<v8::internal::Isolate>::ReadObject(v8::internal::SnapshotSpace) (/home/runner/work/node/node/out/Release/node+0x39d82e9) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#4 0x560311ddb550 in int v8::internal::Deserializer<v8::internal::Isolate>::ReadSingleBytecodeData<v8::internal::SlotAccessorForRootSlots>(unsigned char, v8::internal::SlotAccessorForRootSlots) (/home/runner/work/node/node/out/Release/node+0x39db550) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#5 0x560311dda45e in v8::internal::Deserializer<v8::internal::Isolate>::VisitRootPointers(v8::internal::Root, char const*, v8::internal::FullObjectSlot, v8::internal::FullObjectSlot) (/home/runner/work/node/node/out/Release/node+0x39da45e) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#6 0x560311e0467c in v8::internal::(anonymous namespace)::IterateObjectCache(v8::internal::Isolate*, std::vector<v8::internal::Tagged<v8::internal::Object>, std::allocator<v8::internal::Tagged<v8::internal::Object>>>*, v8::internal::Root, v8::internal::RootVisitor*) serializer-deserializer.cc
#7 0x560311e5a1a6 in v8::internal::StartupDeserializer::DeserializeIntoIsolate() (/home/runner/work/node/node/out/Release/node+0x3a5a1a6) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#8 0x56031103d162 in v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) (/home/runner/work/node/node/out/Release/node+0x2c3d162) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#9 0x56031103e9d8 in v8::internal::Isolate::InitWithSnapshot(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) (/home/runner/work/node/node/out/Release/node+0x2c3e9d8) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#10 0x560311e3f7a6 in v8::internal::Snapshot::Initialize(v8::internal::Isolate*) (/home/runner/work/node/node/out/Release/node+0x3a3f7a6) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#11 0x560310cd0c66 in v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) (/home/runner/work/node/node/out/Release/node+0x28d0c66) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#12 0x56030fffe710 in node::NewIsolate(v8::Isolate::CreateParams*, uv_loop_s*, node::MultiIsolatePlatform*, node::SnapshotData const*, node::IsolateSettings const&) /home/runner/work/node/node/out/../src/api/environment.cc:358:3
#13 0x5603108030f6 in node::worker::WorkerThreadData::WorkerThreadData(node::worker::Worker*) /home/runner/work/node/node/out/../src/node_worker.cc:164:9
#14 0x5603107f40db in node::worker::Worker::Run() /home/runner/work/node/node/out/../src/node_worker.cc:293:20
#15 0x5603107fd304 in node::worker::Worker::StartThread(v8::FunctionCallbackInfo<v8::Value> const&)::$_0::operator()(void*) const /home/runner/work/node/node/out/.
=== release test-worker-init-failure ===
Path: parallel/test-worker-init-failure
Error: --- stderr ---
node:assert:126
throw new AssertionError(obj);
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
6 !== 0
at ChildProcess.<anonymous> (/home/runner/work/node/node/test/parallel/test-worker-init-failure.js:69:12)
at ChildProcess.<anonymous> (/home/runner/work/node/node/test/common/index.js:474:15)
at ChildProcess.emit (node:events:520:28)
at ChildProcess._handle.onexit (node:internal/child_process:294:12) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 6,
expected: 0,
operator: 'strictEqual'
}
Node.js v23.0.0-pre
--- stdout ---
child stdout:
child stderr: undefined:0
RangeError: Maximum call stack size exceeded
Node.js v23.0.0-pre
=================================================================
Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-init-failure.js
=== release test-worker-stack-overflow ===
Path: parallel/test-worker-stack-overflow
Error: Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-stack-overflow.js
--- CRASHED (Signal: 11) ---
=== release test-worker-stack-overflow-stack-size ===
Path: parallel/test-worker-stack-overflow-stack-size
Error: Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-stack-overflow-stack-size.js
--- CRASHED (Signal: 11) ---
=== release test-worker-fshandles-error-on-termination ===
Path: sequential/test-worker-fshandles-error-on-termination
Error: --- stderr ---
undefined:0
RangeError: Maximum call stack size exceeded
Node.js v23.0.0-pre
=================================================================
==174357==ERROR: AddressSanitizer: heap-use-after-free on address 0x529000001028 at pc 0x55bd727ed7fe bp 0x7fe5a3dfea20 sp 0x7fe5a3dfea18
READ of size 8 at 0x529000001028 thread T22
#0 0x55bd727ed7fd in int v8::internal::Deserializer<v8::internal::Isolate>::ReadApiReference<v8::internal::SlotAccessorForHeapObject>(unsigned char, v8::internal::SlotAccessorForHeapObject) (/home/runner/work/node/node/out/Release/node+0x39ed7fd) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#1 0x55bd727d82e9 in v8::internal::Deserializer<v8::internal::Isolate>::ReadObject(v8::internal::SnapshotSpace) (/home/runner/work/node/node/out/Release/node+0x39d82e9) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#2 0x55bd727dab85 in int v8::internal::Deserializer<v8::internal::Isolate>::ReadSingleBytecodeData<v8::internal::SlotAccessorForHeapObject>(unsigned char, v8::internal::SlotAccessorForHeapObject) (/home/runner/work/node/node/out/Release/node+0x39dab85) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#3 0x55bd727d82e9 in v8::internal::Deserializer<v8::internal::Isolate>::ReadObject(v8::internal::SnapshotSpace) (/home/runner/work/node/node/out/Release/node+0x39d82e9) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#4 0x55bd727db550 in int v8::internal::Deserializer<v8::internal::Isolate>::ReadSingleBytecodeData<v8::internal::SlotAccessorForRootSlots>(unsigned char, v8::internal::SlotAccessorForRootSlots) (/home/runner/work/node/node/out/Release/node+0x39db550) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#5 0x55bd727da45e in v8::internal::Deserializer<v8::internal::Isolate>::VisitRootPointers(v8::internal::Root, char const*, v8::internal::FullObjectSlot, v8::internal::FullObjectSlot) (/home/runner/work/node/node/out/Release/node+0x39da45e) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#6 0x55bd7280467c in v8::internal::(anonymous namespace)::IterateObjectCache(v8::internal::Isolate*, std::vector<v8::internal::Tagged<v8::internal::Object>, std::allocator<v8::internal::Tagged<v8::internal::Object>>>*, v8::internal::Root, v8::internal::RootVisitor*) serializer-deserializer.cc
#7 0x55bd7285a1a6 in v8::internal::StartupDeserializer::DeserializeIntoIsolate() (/home/runner/work/node/node/out/Release/node+0x3a5a1a6) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#8 0x55bd71a3d162 in v8::internal::Isolate::Init(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) (/home/runner/work/node/node/out/Release/node+0x2c3d162) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#9 0x55bd71a3e9d8 in v8::internal::Isolate::InitWithSnapshot(v8::internal::SnapshotData*, v8::internal::SnapshotData*, v8::internal::SnapshotData*, bool) (/home/runner/work/node/node/out/Release/node+0x2c3e9d8) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#10 0x55bd7283f7a6 in v8::internal::Snapshot::Initialize(v8::internal::Isolate*) (/home/runner/work/node/node/out/Release/node+0x3a3f7a6) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#11 0x55bd716d0c66 in v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) (/home/runner/work/node/node/out/Release/node+0x28d0c66) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#12 0x55bd709fe710 in node::NewIsolate(v8::Isolate::CreateParams*, uv_loop_s*, node::MultiIsolatePlatform*, node::SnapshotData const*, node::IsolateSettings const&) /home/runner/work/node/node/out/../src/api/environment.cc:358:3
#13 0x55bd712030f6 in node::worker::WorkerThreadData::WorkerThreadData(node::worker::Worker*) /home/runner/work/node/node/out/../src/node_worker.cc:164:9
#14 0x55bd711f40db in node::worker::Worker::Run() /home/runner/work/node/node/out/../src/node_worker.cc:293:20
#15 0x55bd711fd304 in node::worker::Worker::StartThread(v8::FunctionCallbackInfo<v8::Value> const&)::$_0::operator()(void*) const /home/runner/work/node/node/out/.
=== release test-worker-fshandles-open-close-on-termination ===
Path: sequential/test-worker-fshandles-open-close-on-termination
Error: --- stderr ---
undefined:0
RangeError: Maximum call stack size exceeded
Node.js v23.0.0-pre
=================================================================
==174723==ERROR: AddressSanitizer: heap-use-after-free on address 0x50d0000006c0 at pc 0x55a3c9cd1278 bp 0x7f2e485ff150 sp 0x7f2e485ff148
READ of size 8 at 0x50d0000006c0 thread T22
#0 0x55a3c9cd1277 in v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) (/home/runner/work/node/node/out/Release/node+0x28d1277) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#1 0x55a3c8ffe710 in node::NewIsolate(v8::Isolate::CreateParams*, uv_loop_s*, node::MultiIsolatePlatform*, node::SnapshotData const*, node::IsolateSettings const&) /home/runner/work/node/node/out/../src/api/environment.cc:358:3
#2 0x55a3c98030f6 in node::worker::WorkerThreadData::WorkerThreadData(node::worker::Worker*) /home/runner/work/node/node/out/../src/node_worker.cc:164:9
#3 0x55a3c97f40db in node::worker::Worker::Run() /home/runner/work/node/node/out/../src/node_worker.cc:293:20
#4 0x55a3c97fd304 in node::worker::Worker::StartThread(v8::FunctionCallbackInfo<v8::Value> const&)::$_0::operator()(void*) const /home/runner/work/node/node/out/../src/node_worker.cc:693:8
#5 0x55a3c97fd11e in node::worker::Worker::StartThread(v8::FunctionCallbackInfo<v8::Value> const&)::$_0::__invoke(void*) /home/runner/work/node/node/out/../src/node_worker.cc:682:55
#6 0x55a3c8f9a60c in asan_thread_start(void*) asan_interceptors.cpp.o
#7 0x7f2ebac9ca93 (/lib/x86_64-linux-gnu/libc.so.6+0x9ca93) (BuildId: 4d9090d61bf70e6b3225d583f0f08193f54670b2)
#8 0x7f2ebad29c3b (/lib/x86_64-linux-gnu/libc.so.6+0x129c3b) (BuildId: 4d9090d61bf70e6b3225d583f0f08193f54670b2)
0x50d0000006c0 is located 0 bytes inside of 144-byte region [0x50d0000006c0,0x50d000000750)
freed by thread T20 here:
#0 0x55a3c8fdb9c1 in operator delete(void*) (/home/runner/work/node/node/out/Release/node+0x1bdb9c1) (BuildId: 7496b068b922cf2ab0b834edb83acbc6535015b9)
#1 0x55a3c95effa1 in node::NodePlatform::~NodePlatform() /home/runner/work/node/node/out/../src/node_platform.cc:356:31
#2 0x55a3c900b2f2 in node::V8Platform::Dispose() /home/runner/work/node/node/out/../src/node_v8_platform-inl.h:116:5
#3 0x55a3c900810f in node::DisposePlatform() /home/runner/work/node/node/out/../src/node_v8_platform-inl.h:198:28
#4 0x55a3c9003d67 in node::DefaultProcessExitHandlerInternal(node::Environment*, node::ExitCode) /home/runner/work/node/node/out/../src/api/environment.cc:926:3
#5 0x55a3c922660a in void std::__invoke_impl<void, void (*&)(node::Environment*, node::ExitCode), node::Environment*, node::ExitCode>(std::__invoke_other, void (*&)(node::Environment*, node::ExitCode), node::Environment*&&, node::ExitCode&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:61:14
#6 0x55a3c9226514 in std::enable_if<is_invocable_r_v<void, void (*&)(node::Environment*, node::ExitCode), node::Environment*, node::ExitCode>, void>::type std::__invoke_r<void, void (*&)(node::Environment*, node::ExitCode), node::Environment*, node::ExitCode>(void (*&)(node::Environment*, node::ExitCode), node::Environment*&&, node::ExitCode&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/invoke.h:111:2
#7 0x55a3c92263fc in std::_Function_handler<void (node::Environment*, node::ExitCode), void (*)(node::Environment*, node::ExitCode)>::_M_invoke(std::_Any_data const&, node::Environment*&&, node::ExitCode&&) /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:290:9
#8 0x55a3c91fe11b in std::function<void (node::Environment*, node::ExitCode)>::operator()(node::Environment*, node::ExitCode) const /usr/bin/../lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/bits/std_function.h:591:9
#9 0x55a3c91df780 in node::Environment::Exit(node::ExitCode) /home/runner/work/node/node/out/../src/env.cc:1799:3
#10 0x55a3c9401bf9 in node::errors::TriggerUncaughtException(v8::Isolate*, v8::Local<v8::Value>, v8::Local<v8::Message>, bool)
=== release test-blob ===
Path: wpt/test-blob
make[1]: *** [Makefile:568: test-ci] Error 1
make: *** [Makefile:597: run-ci] Error 2
Error: --- stderr ---
undefined:0
RangeError: Maximum call stack size exceeded
Node.js v23.0.0-pre
=================================================================
==175481==ERROR: AddressSanitizer: heap-use-after-free on address 0x529000000fd8 at pc 0x5632d19ed7fe bp 0x7f35acffea20 sp 0x7f35acffea18
READ of size 8 at 0x529000000fd8 thread T11
--- stdout ---
[SKIPPED] Blob-constructor-dom.window.js: Depends on DOM API
[SKIPPED] Blob-in-worker.worker.js: Depends on Web Workers API
[SKIPPED] Blob-slice.any.js: Depends on File API
[PASS] Blob.arrayBuffer()
[PASS] Blob interface object
[PASS] Blob constructor with no arguments
[PASS] slice start is negative, relativeStart will be max((size + start), 0)
[PASS] slice start is greater than blob size, relativeStart will be min(start, size)
[PASS] slice end is negative, relativeEnd will be max((size + end), 0)
[PASS] slice end is greater than blob size, relativeEnd will be min(end, size)
[PASS] Blob.arrayBuffer() empty Blob data
[PASS] Blob.arrayBuffer() non-ascii input
[PASS] Blob.arrayBuffer() non-unicode input
[PASS] Blob.arrayBuffer() concurrent reads
[PASS] Blob constructor with no arguments, without 'new'
[PASS] Blob constructor without brackets
[PASS] Blob constructor with undefined as first argument
[PASS] Passing non-objects, Dates and RegExps for blobParts should throw a TypeError.
[EXPECTED_FAILURE][FAIL] A plain object with @@iterator should be treated as a sequence for the blobParts argument.
FileReader is not defined
ReferenceError: FileReader is not defined
at Test.<anonymous> (/home/runner/work/node/node/test/fixtures/wpt/FileAPI/support/Blob.js:16:14)
at Test.step (/home/runner/work/node/node/test/fixtures/wpt/resources/testharness.js:2599:25)
at self.test_blob (/home/runner/work/node/node/test/fixtures/wpt/FileAPI/support/Blob.js:9:5)
at /home/runner/work/node/node/test/fixtures/wpt/FileAPI/blob/Blob-constructor.any.js:58:1
at Script.runInThisContext (node:vm:136:12)
at runInThisContext (node:vm:316:38)
at Object.<anonymous> (/home/runner/work/node/node/test/common/wpt/worker.js:69:3)
at Module._compile (node:internal/modules/cjs/loader:1434:14)
at Object..js (node:internal/modules/cjs/loader:1518:10)
at Module.load (node:internal/modules/cjs/loader:1249:32)
Command: /home/runner/work/node/node/out/Release/node --test-reporter=spec,--test-reporter-destination=stdout,--test-reporter=./tools/github_reporter/index.js,--test-reporter-destination=stdout /home/runner/work/node/node/test/wpt/test-blob.js 'Blob-constructor.any.js'
[PASS] A plain object with custom @@iterator should be treated as a sequence for the blobParts argument.
[EXPECTED_FAILURE][FAIL] A plain object with @@iterator and a length property should be treated as a sequence for the blobParts argument.
FileReader is not defined
ReferenceError: FileReader is not defined
at Test.<anonymous> (/home/runner/work/node/node/test/fixtures/wpt/FileAPI/support/Blob.js:16:14)
at Test.step (/home/runner/work/node/node/test/fixtures/wpt/resources/testharness.js:2599:25)
at self.test_blob (/home/runner/work/node/node/test/fixtures/wpt/FileAPI/support/Blob.js:9:5)
at /home/runner/work/node/node/test/fixtures/wpt/FileAPI/blob/Blob-constructor.any.js:81:1
at Script.runInThisContext (node:vm:136:12)
at runInThisContext (node:vm:316:38)
at Object.<anonymous> (/home/runner/work/node/node/test/common/wpt/worker.js:69:3)
at Module._compile (node:internal/modules/cjs/loader:1434:14)
at Object..js (node:internal/modules/cjs/loader:1518:10)
at Module.load (node:internal/modules/cjs/loader:1249:32)
Command: /home/runner/work/node/node/out/Release/node --test-reporter=spec,--test-reporter-destination=stdout,--test-reporter=./tools/github_reporter/index.js,--test-reporter-destination=stdout /home/runner/work/node/node/test/wpt/test-blob.js 'Blob-constructor.any.js'
[EXPECTED_FAILURE][FAIL] A String object should be treated as a sequence for the blobParts argument.
FileReader is not defined
ReferenceError: FileReader is not defined
at Test.<anonymous
===
=== 9 tests failed
=== 5 tests CRASHED
===
Failed tests:
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-cli-node-options.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-http2-stream-terminate.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-memory.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-init-failure.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-stack-overflow.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-stack-overflow-stack-size.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-worker-fshandles-error-on-termination.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-worker-fshandles-open-close-on-termination.js
out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/wpt/test-blob.js