Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tools: run test-asan on ubuntu-24.04 #52374

Closed
wants to merge 2 commits into from
Closed

Conversation

targos
Copy link
Member

@targos targos commented Apr 5, 2024

Closes: #45578

The only way to know if it works is to try.

@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/actions

@nodejs-github-bot nodejs-github-bot added the meta Issues and PRs related to the general management of the project. label Apr 5, 2024
@targos
Copy link
Member Author

targos commented Apr 5, 2024

If it still fails, I hope we can use this PR to collaborate on finding a real fix for #45578.

@targos
Copy link
Member Author

targos commented Apr 5, 2024

===
=== 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

@targos targos added help wanted Issues that need assistance from volunteers or PRs that need help to proceed. wip Issues and PRs that are still a work in progress. labels Apr 5, 2024
@aduh95
Copy link
Contributor

aduh95 commented Apr 7, 2024

/cc @nodejs/single-executable

@targos
Copy link
Member Author

targos commented Apr 8, 2024

I hoped to get more information from a debug build but it's not reproducible with it!

@aduh95
Copy link
Contributor

aduh95 commented Apr 8, 2024

Should we try with --debug-node to see if that would also workaround the issue? Hopefully that should reduce the build time.

@targos
Copy link
Member Author

targos commented Apr 9, 2024

--debug-node shows the same errors.

@targos
Copy link
Member Author

targos commented Apr 9, 2024

I suggest to wait for #52406 and retry.

@anonrig
Copy link
Member

anonrig commented Apr 10, 2024

I suggest to wait for #52406 and retry.

How is this related to dotenv? Sorry, I couldn't find the connection @targos

@targos
Copy link
Member Author

targos commented Apr 10, 2024

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)

@targos
Copy link
Member Author

targos commented Apr 17, 2024

@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

@targos
Copy link
Member Author

targos commented Apr 17, 2024

What I understand is it points to

node/src/node_options-inl.h

Lines 119 to 123 in 97627da

template <typename Options>
void OptionsParser<Options>::AddAlias(const char* from,
const char* to) {
aliases_[from] = { to };
}

Where an array is allocated.

Then somewhere we use delete instead of delete[] to deallocate it, but I don't see where it happens.

@lemire
Copy link
Member

lemire commented Apr 17, 2024

Line 106 seems to be...

OptionEnvvarSettings env_setting) {

called from

AddAlias("-pe", { "--print", "--eval" });

@lemire
Copy link
Member

lemire commented Apr 18, 2024

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.

@lemire
Copy link
Member

lemire commented Apr 18, 2024

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.

@lemire lemire added the request-ci Add this label to start a Jenkins CI on a PR. label Apr 18, 2024
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Apr 18, 2024
@nodejs-github-bot
Copy link
Collaborator

@lemire
Copy link
Member

lemire commented Apr 19, 2024

Let us try to rerun the tests.

@targos
Copy link
Member Author

targos commented Apr 23, 2024

rebased

@targos
Copy link
Member Author

targos commented Apr 24, 2024

Since the problem only happens with SEA tests, where the binary is patched, it's possible that the debug output is a red herring.

@lemire
Copy link
Member

lemire commented Apr 24, 2024

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?

@targos
Copy link
Member Author

targos commented Apr 24, 2024

It's a hypothesis. I don't really know what's happening.

@targos
Copy link
Member Author

targos commented May 16, 2024

Oh, results with latest Clang are much more interesting!

https://github.com/nodejs/node/actions/runs/9106598364/job/25034057819?pr=52374

@targos
Copy link
Member Author

targos commented May 21, 2024

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

@targos targos changed the title tools: run test-asan on ubuntu-latest tools: run test-asan on ubuntu-24.04 Jun 30, 2024
@targos targos mentioned this pull request Jul 1, 2024
targos added a commit to targos/node that referenced this pull request Jul 14, 2024
It is running on ubuntu-20.04, which will inevitably be removed from
GitHub actions at some point. Attempts to upgrade it to ubuntu-22.04
and ubuntu-24.04 have failed.

It is now blocking V8 updates because of errors that happen only with
the `test-asan` job.

Refs: nodejs#52374
Refs: nodejs#53651 (comment)
nodejs-github-bot pushed a commit that referenced this pull request Jul 16, 2024
It is running on ubuntu-20.04, which will inevitably be removed from
GitHub actions at some point. Attempts to upgrade it to ubuntu-22.04
and ubuntu-24.04 have failed.

It is now blocking V8 updates because of errors that happen only with
the `test-asan` job.

Refs: #52374
Refs: #53651 (comment)
PR-URL: #53844
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
@targos targos closed this Jul 17, 2024
@targos targos deleted the test-asan-latest branch July 17, 2024 11:45
ehsankhfr pushed a commit to ehsankhfr/node that referenced this pull request Jul 18, 2024
It is running on ubuntu-20.04, which will inevitably be removed from
GitHub actions at some point. Attempts to upgrade it to ubuntu-22.04
and ubuntu-24.04 have failed.

It is now blocking V8 updates because of errors that happen only with
the `test-asan` job.

Refs: nodejs#52374
Refs: nodejs#53651 (comment)
PR-URL: nodejs#53844
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
targos added a commit that referenced this pull request Jul 28, 2024
It is running on ubuntu-20.04, which will inevitably be removed from
GitHub actions at some point. Attempts to upgrade it to ubuntu-22.04
and ubuntu-24.04 have failed.

It is now blocking V8 updates because of errors that happen only with
the `test-asan` job.

Refs: #52374
Refs: #53651 (comment)
PR-URL: #53844
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
marco-ippolito pushed a commit that referenced this pull request Aug 19, 2024
It is running on ubuntu-20.04, which will inevitably be removed from
GitHub actions at some point. Attempts to upgrade it to ubuntu-22.04
and ubuntu-24.04 have failed.

It is now blocking V8 updates because of errors that happen only with
the `test-asan` job.

Refs: #52374
Refs: #53651 (comment)
PR-URL: #53844
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
marco-ippolito pushed a commit that referenced this pull request Aug 19, 2024
It is running on ubuntu-20.04, which will inevitably be removed from
GitHub actions at some point. Attempts to upgrade it to ubuntu-22.04
and ubuntu-24.04 have failed.

It is now blocking V8 updates because of errors that happen only with
the `test-asan` job.

Refs: #52374
Refs: #53651 (comment)
PR-URL: #53844
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
marco-ippolito pushed a commit that referenced this pull request Aug 19, 2024
It is running on ubuntu-20.04, which will inevitably be removed from
GitHub actions at some point. Attempts to upgrade it to ubuntu-22.04
and ubuntu-24.04 have failed.

It is now blocking V8 updates because of errors that happen only with
the `test-asan` job.

Refs: #52374
Refs: #53651 (comment)
PR-URL: #53844
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Issues that need assistance from volunteers or PRs that need help to proceed. meta Issues and PRs related to the general management of the project. wip Issues and PRs that are still a work in progress.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

test-asan workflow broken by runner update to ubuntu-22.04
5 participants