Skip to content

ci: Use LLVM 17.0.6 & DEBUG=1 in depends for MSAN jobs #27495

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

Merged
merged 2 commits into from
Jan 29, 2024

Conversation

fanquake
Copy link
Member

@fanquake fanquake commented Apr 19, 2023

Switch to using LLVM 17.0.6 and DEBUG=1 in MSAN CI jobs.

@DrahtBot
Copy link
Contributor

DrahtBot commented Apr 19, 2023

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage

For detailed information about the code coverage, see the test coverage report.

Reviews

See the guideline for information on the review process.

Type Reviewers
ACK maflcko

If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

Conflicts

No conflicts as of last run.

@maflcko
Copy link
Member

maflcko commented Jun 5, 2023

Looks like this is blocked on #27222

@maflcko
Copy link
Member

maflcko commented Jun 20, 2023

Looks like the symbols are broken in the failed CI run. Maybe due to #27737 (comment) ?

@fanquake fanquake force-pushed the msan_depends_debug_1 branch from 58fb292 to 01b9e85 Compare June 20, 2023 17:54
fanquake added a commit that referenced this pull request Jun 21, 2023
682274a ci: install llvm-symbolizer in MSAN jobs (fanquake)
96527cd ci: use LLVM 16.0.6 in MSAN jobs (fanquake)

Pull request description:

  Fixes: #27737 (comment).

  Tested (locally) with #27495 that it produces a symbolized backtrace:
  ```bash
  2023-06-20T17:5Uninitialized bytes in __interceptor_strlen at offset 113 inside [0x719000006908, 114)
  ==35429==WARNING: MemorySanitizer: use-of-uninitialized-value
      #0 0x56060fae8c4b in sqlite3Strlen30 /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:32670:28
      #1 0x56060fb0fcf4 in sqlite3PagerOpen /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:57953:17
      #2 0x56060fb0f48b in sqlite3BtreeOpen /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:68679:10
      #3 0x56060fb01384 in openDatabase /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:171911:8
      #4 0x56060fb016ca in sqlite3_open_v2 /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:172034:10
      #5 0x56060e8a94db in wallet::SQLiteDatabase::Open() src/wallet/sqlite.cpp:250:19
      #6 0x56060e8a30fd in wallet::SQLiteDatabase::SQLiteDatabase(fs::path const&, fs::path const&, wallet::DatabaseOptions const&, bool) src/wallet/sqlite.cpp:133:9
      #7 0x56060e8b78f5 in std::__1::__unique_if<wallet::SQLiteDatabase>::__unique_single std::__1::make_unique[abi:v160006]<wallet::SQLiteDatabase, std::__1::__fs::filesystem::path, fs::path&, wallet::DatabaseOptions const&>(std::__1::__fs::filesystem::path&&, fs::path&, wallet::DatabaseOptions const&) /home/ubuntu/ci_scratch/ci/scratch/msan/cxx_build/include/c++/v1/__memory/unique_ptr.h:686:30
      #8 0x56060e8b5240 in wallet::MakeSQLiteDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/sqlite.cpp:641:19
      #9 0x56060e83560b in wallet::MakeDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/walletdb.cpp:1261:16
      #10 0x56060e7546e9 in wallet::MakeWalletDatabase(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/wallet.cpp:2905:12
      #11 0x56060e4bc03f in wallet::TestLoadWallet(wallet::WalletContext&) src/wallet/test/util.cpp:68:21
      #12 0x56060e349ad4 in wallet::wallet_tests::ZapSelectTx::test_method() src/wallet/test/wallet_tests.cpp:897:19
      #13 0x56060e348598 in wallet::wallet_tests::ZapSelectTx_invoker() src/wallet/test/wallet_tests.cpp:891:1
      #14 0x56060cfec325 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:117:11
      #15 0x56060ced3a7e in boost::function0<void>::operator()() const /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
      #16 0x56060ced3a7e in boost::detail::forward::operator()() /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1388:32
      #17 0x56060ced3a7e in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:137:18
      #18 0x56060cda71c2 in boost::function0<int>::operator()() const /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
      #19 0x56060cda71c2 in int boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()>>(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:301:30
      #20 0x56060cda71c2 in boost::execution_monitor::catch_signals(boost::function<int ()> const&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:903:16
      #21 0x56060cda784a in boost::execution_monitor::execute(boost::function<int ()> const&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1301:16
      #22 0x56060cd9ec3a in boost::execution_monitor::vexecute(boost::function<void ()> const&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1397:5
      #23 0x56060cd9ec3a in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned long) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_monitor.ipp:49:9
      #24 0x56060ce1a07b in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:815:44
      #25 0x56060ce1ad8b in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:784:58
      #26 0x56060ce1ad8b in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:784:58
      #27 0x56060cd9b8de in boost::unit_test::framework::run(unsigned long, bool) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:1722:29
      #28 0x56060cdd4fac in boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:250:9
      #29 0x56060cdd6094 in main /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:306:12
      #30 0x7f7379691d8f  (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f) (BuildId: 69389d485a9793dbe873f0ea2c93e02efaa9aa3d)
      #31 0x7f7379691e3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e3f) (BuildId: 69389d485a9793dbe873f0ea2c93e02efaa9aa3d)
      #32 0x56060cce2e24 in _start (/home/ubuntu/ci_scratch/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x188e24)

    Uninitialized value was created by a heap allocation
      #0 0x56060cd163f2 in malloc /ci_base_install/ci/scratch/msan/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp:934:3
      #1 0x56060fc10069 in sqlite3MemMalloc /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:25163:7
      #2 0x56060fb063bc in mallocWithAlarm /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:28846:7
      #3 0x56060fae4eb9 in sqlite3Malloc /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:28876:5
      #4 0x56060faf9e19 in sqlite3DbMallocRaw /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:29176:7
      #5 0x56060fb0fc67 in sqlite3PagerOpen /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:57938:17
      #6 0x56060fb0f48b in sqlite3BtreeOpen /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:68679:10
      #7 0x56060fb01384 in openDatabase /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:171911:8
      #8 0x56060fb016ca in sqlite3_open_v2 /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:172034:10
      #9 0x56060e8a94db in wallet::SQLiteDatabase::Open() src/wallet/sqlite.cpp:250:19
      #10 0x56060e8a30fd in wallet::SQLiteDatabase::SQLiteDatabase(fs::path const&, fs::path const&, wallet::DatabaseOptions const&, bool) src/wallet/sqlite.cpp:133:9
      #11 0x56060e8b78f5 in std::__1::__unique_if<wallet::SQLiteDatabase>::__unique_single std::__1::make_unique[abi:v160006]<wallet::SQLiteDatabase, std::__1::__fs::filesystem::path, fs::path&, wallet::DatabaseOptions const&>(std::__1::__fs::filesystem::path&&, fs::path&, wallet::DatabaseOptions const&) /home/ubuntu/ci_scratch/ci/scratch/msan/cxx_build/include/c++/v1/__memory/unique_ptr.h:686:30
      #12 0x56060e8b5240 in wallet::MakeSQLiteDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/sqlite.cpp:641:19
      #13 0x56060e83560b in wallet::MakeDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/walletdb.cpp:1261:16
      #14 0x56060e7546e9 in wallet::MakeWalletDatabase(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/wallet.cpp:2905:12
      #15 0x56060e4bc03f in wallet::TestLoadWallet(wallet::WalletContext&) src/wallet/test/util.cpp:68:21
      #16 0x56060e349ad4 in wallet::wallet_tests::ZapSelectTx::test_method() src/wallet/test/wallet_tests.cpp:897:19
      #17 0x56060e348598 in wallet::wallet_tests::ZapSelectTx_invoker() src/wallet/test/wallet_tests.cpp:891:1
      #18 0x56060cfec325 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:117:11
      #19 0x56060ced3a7e in boost::function0<void>::operator()() const /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
      #20 0x56060ced3a7e in boost::detail::forward::operator()() /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1388:32
      #21 0x56060ced3a7e in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:137:18

  SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:32670:28 in sqlite3Strlen30
  ```

  as opposed to unsymbolized: https://cirrus-ci.com/task/6005512018329600?logs=ci#L3245.

ACKs for top commit:
  MarcoFalke:
    lgtm ACK 682274a

Tree-SHA512: 8f3e7636761c956537a472989bf07529f5afbd988c5e7e1f07ece8b2599608fa4fe9e1efdc6e302cf0f7f44dec3cf9a3c1e68b758af81a8a8b476a43d3220807
@fanquake fanquake force-pushed the msan_depends_debug_1 branch from 01b9e85 to fde602a Compare June 21, 2023 08:45
@fanquake fanquake changed the title [WIP] ci: Use DEBUG=1 in depends for MSAN jobs ci: Use DEBUG=1 in depends for MSAN jobs Jun 21, 2023
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jun 21, 2023
682274a ci: install llvm-symbolizer in MSAN jobs (fanquake)
96527cd ci: use LLVM 16.0.6 in MSAN jobs (fanquake)

Pull request description:

  Fixes: bitcoin#27737 (comment).

  Tested (locally) with bitcoin#27495 that it produces a symbolized backtrace:
  ```bash
  2023-06-20T17:5Uninitialized bytes in __interceptor_strlen at offset 113 inside [0x719000006908, 114)
  ==35429==WARNING: MemorySanitizer: use-of-uninitialized-value
      #0 0x56060fae8c4b in sqlite3Strlen30 /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:32670:28
      #1 0x56060fb0fcf4 in sqlite3PagerOpen /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:57953:17
      #2 0x56060fb0f48b in sqlite3BtreeOpen /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:68679:10
      #3 0x56060fb01384 in openDatabase /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:171911:8
      #4 0x56060fb016ca in sqlite3_open_v2 /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:172034:10
      #5 0x56060e8a94db in wallet::SQLiteDatabase::Open() src/wallet/sqlite.cpp:250:19
      #6 0x56060e8a30fd in wallet::SQLiteDatabase::SQLiteDatabase(fs::path const&, fs::path const&, wallet::DatabaseOptions const&, bool) src/wallet/sqlite.cpp:133:9
      #7 0x56060e8b78f5 in std::__1::__unique_if<wallet::SQLiteDatabase>::__unique_single std::__1::make_unique[abi:v160006]<wallet::SQLiteDatabase, std::__1::__fs::filesystem::path, fs::path&, wallet::DatabaseOptions const&>(std::__1::__fs::filesystem::path&&, fs::path&, wallet::DatabaseOptions const&) /home/ubuntu/ci_scratch/ci/scratch/msan/cxx_build/include/c++/v1/__memory/unique_ptr.h:686:30
      #8 0x56060e8b5240 in wallet::MakeSQLiteDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/sqlite.cpp:641:19
      #9 0x56060e83560b in wallet::MakeDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/walletdb.cpp:1261:16
      #10 0x56060e7546e9 in wallet::MakeWalletDatabase(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/wallet.cpp:2905:12
      #11 0x56060e4bc03f in wallet::TestLoadWallet(wallet::WalletContext&) src/wallet/test/util.cpp:68:21
      #12 0x56060e349ad4 in wallet::wallet_tests::ZapSelectTx::test_method() src/wallet/test/wallet_tests.cpp:897:19
      #13 0x56060e348598 in wallet::wallet_tests::ZapSelectTx_invoker() src/wallet/test/wallet_tests.cpp:891:1
      #14 0x56060cfec325 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:117:11
      #15 0x56060ced3a7e in boost::function0<void>::operator()() const /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
      #16 0x56060ced3a7e in boost::detail::forward::operator()() /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1388:32
      #17 0x56060ced3a7e in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:137:18
      #18 0x56060cda71c2 in boost::function0<int>::operator()() const /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
      #19 0x56060cda71c2 in int boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()>>(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:301:30
      #20 0x56060cda71c2 in boost::execution_monitor::catch_signals(boost::function<int ()> const&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:903:16
      #21 0x56060cda784a in boost::execution_monitor::execute(boost::function<int ()> const&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1301:16
      #22 0x56060cd9ec3a in boost::execution_monitor::vexecute(boost::function<void ()> const&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1397:5
      #23 0x56060cd9ec3a in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned long) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_monitor.ipp:49:9
      #24 0x56060ce1a07b in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:815:44
      #25 0x56060ce1ad8b in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:784:58
      #26 0x56060ce1ad8b in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:784:58
      #27 0x56060cd9b8de in boost::unit_test::framework::run(unsigned long, bool) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:1722:29
      #28 0x56060cdd4fac in boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:250:9
      #29 0x56060cdd6094 in main /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:306:12
      #30 0x7f7379691d8f  (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f) (BuildId: 69389d485a9793dbe873f0ea2c93e02efaa9aa3d)
      #31 0x7f7379691e3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e3f) (BuildId: 69389d485a9793dbe873f0ea2c93e02efaa9aa3d)
      #32 0x56060cce2e24 in _start (/home/ubuntu/ci_scratch/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x188e24)

    Uninitialized value was created by a heap allocation
      #0 0x56060cd163f2 in malloc /ci_base_install/ci/scratch/msan/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp:934:3
      #1 0x56060fc10069 in sqlite3MemMalloc /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:25163:7
      #2 0x56060fb063bc in mallocWithAlarm /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:28846:7
      #3 0x56060fae4eb9 in sqlite3Malloc /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:28876:5
      #4 0x56060faf9e19 in sqlite3DbMallocRaw /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:29176:7
      #5 0x56060fb0fc67 in sqlite3PagerOpen /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:57938:17
      #6 0x56060fb0f48b in sqlite3BtreeOpen /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:68679:10
      #7 0x56060fb01384 in openDatabase /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:171911:8
      #8 0x56060fb016ca in sqlite3_open_v2 /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:172034:10
      #9 0x56060e8a94db in wallet::SQLiteDatabase::Open() src/wallet/sqlite.cpp:250:19
      #10 0x56060e8a30fd in wallet::SQLiteDatabase::SQLiteDatabase(fs::path const&, fs::path const&, wallet::DatabaseOptions const&, bool) src/wallet/sqlite.cpp:133:9
      #11 0x56060e8b78f5 in std::__1::__unique_if<wallet::SQLiteDatabase>::__unique_single std::__1::make_unique[abi:v160006]<wallet::SQLiteDatabase, std::__1::__fs::filesystem::path, fs::path&, wallet::DatabaseOptions const&>(std::__1::__fs::filesystem::path&&, fs::path&, wallet::DatabaseOptions const&) /home/ubuntu/ci_scratch/ci/scratch/msan/cxx_build/include/c++/v1/__memory/unique_ptr.h:686:30
      #12 0x56060e8b5240 in wallet::MakeSQLiteDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/sqlite.cpp:641:19
      #13 0x56060e83560b in wallet::MakeDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/walletdb.cpp:1261:16
      #14 0x56060e7546e9 in wallet::MakeWalletDatabase(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/wallet.cpp:2905:12
      #15 0x56060e4bc03f in wallet::TestLoadWallet(wallet::WalletContext&) src/wallet/test/util.cpp:68:21
      #16 0x56060e349ad4 in wallet::wallet_tests::ZapSelectTx::test_method() src/wallet/test/wallet_tests.cpp:897:19
      #17 0x56060e348598 in wallet::wallet_tests::ZapSelectTx_invoker() src/wallet/test/wallet_tests.cpp:891:1
      #18 0x56060cfec325 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:117:11
      #19 0x56060ced3a7e in boost::function0<void>::operator()() const /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
      #20 0x56060ced3a7e in boost::detail::forward::operator()() /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1388:32
      #21 0x56060ced3a7e in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /home/ubuntu/ci_scratch/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:137:18

  SUMMARY: MemorySanitizer: use-of-uninitialized-value /home/ubuntu/ci_scratch/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-f816a3e2d52/sqlite3.c:32670:28 in sqlite3Strlen30
  ```

  as opposed to unsymbolized: https://cirrus-ci.com/task/6005512018329600?logs=ci#L3245.

ACKs for top commit:
  MarcoFalke:
    lgtm ACK 682274a

Tree-SHA512: 8f3e7636761c956537a472989bf07529f5afbd988c5e7e1f07ece8b2599608fa4fe9e1efdc6e302cf0f7f44dec3cf9a3c1e68b758af81a8a8b476a43d3220807
@fanquake fanquake force-pushed the msan_depends_debug_1 branch from fde602a to b7b9b58 Compare August 23, 2023 13:52
@fanquake
Copy link
Member Author

fanquake commented Sep 7, 2023

Any discussion can continue in #27222.

@maflcko
Copy link
Member

maflcko commented Sep 14, 2023

Ok, looks like there is no change in https://cirrus-ci.com/task/5307270007881728?logs=ci#L3240

2023-09-14T18:15:2Uninitialized bytes in strlen at offset 113 inside [0x719000008708, 114)
==35540==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x55fdc1d5178b in sqlite3Strlen30 /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:32670:28
    #1 0x55fdc1d785b3 in sqlite3PagerOpen /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:57953:17
    #2 0x55fdc1d77d4b in sqlite3BtreeOpen /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:68679:10
    #3 0x55fdc1d69c44 in openDatabase /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:171911:8
    #4 0x55fdc1d69f8a in sqlite3_open_v2 /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:172034:10
    #5 0x55fdc0b4e78c in wallet::SQLiteDatabase::Open() src/wallet/sqlite.cpp:256:19
    #6 0x55fdc0b47887 in wallet::SQLiteDatabase::SQLiteDatabase(fs::path const&, fs::path const&, wallet::DatabaseOptions const&, bool) src/wallet/sqlite.cpp:139:9
    #7 0x55fdc0b5ae91 in std::__1::__unique_if<wallet::SQLiteDatabase>::__unique_single std::__1::make_unique[abi:v170000]<wallet::SQLiteDatabase, std::__1::__fs::filesystem::path, fs::path&, wallet::DatabaseOptions const&>(std::__1::__fs::filesystem::path&&, fs::path&, wallet::DatabaseOptions const&) /msan/cxx_build/include/c++/v1/__memory/unique_ptr.h:689:30
    #8 0x55fdc0b59670 in wallet::MakeSQLiteDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/sqlite.cpp:641:19
    #9 0x55fdc0aecff5 in wallet::MakeDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/walletdb.cpp:1501:16
    #10 0x55fdc0a20f85 in wallet::MakeWalletDatabase(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/wallet.cpp:2852:12
    #11 0x55fdc07ba91a in wallet::TestLoadWallet(wallet::WalletContext&) src/wallet/test/util.cpp:69:21
    #12 0x55fdc064ea71 in wallet::wallet_tests::CreateWallet::test_method() src/wallet/test/wallet_tests.cpp:792:19
    #13 0x55fdc064d39a in wallet::wallet_tests::CreateWallet_invoker() src/wallet/test/wallet_tests.cpp:785:1
    #14 0x55fdbf29d295 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:117:11
    #15 0x55fdbf18987e in boost::function0<void>::operator()() const /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
    #16 0x55fdbf18987e in boost::detail::forward::operator()() /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1388:32
    #17 0x55fdbf18987e in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:137:18
    #18 0x55fdbf071270 in boost::function0<int>::operator()() const /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
    #19 0x55fdbf071270 in int boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()>>(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:301:30
    #20 0x55fdbf071270 in boost::execution_monitor::catch_signals(boost::function<int ()> const&) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:903:16
    #21 0x55fdbf0718fa in boost::execution_monitor::execute(boost::function<int ()> const&) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1301:16
    #22 0x55fdbf064785 in boost::execution_monitor::vexecute(boost::function<void ()> const&) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1397:5
    #23 0x55fdbf064785 in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned long) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_monitor.ipp:49:9
    #24 0x55fdbf0d7ab6 in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:815:44
    #25 0x55fdbf0d863b in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:784:58
    #26 0x55fdbf0d863b in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:784:58
    #27 0x55fdbf0614f8 in boost::unit_test::framework::run(unsigned long, bool) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/framework.ipp:1722:29
    #28 0x55fdbf09cd69 in boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:250:9
    #29 0x55fdbf09de34 in main /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/unit_test_main.ipp:306:12
    #30 0x7f9a96c8ed8f  (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f) (BuildId: 229b7dc509053fe4df5e29e8629911f0c3bc66dd)
    #31 0x7f9a96c8ee3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e3f) (BuildId: 229b7dc509053fe4df5e29e8629911f0c3bc66dd)
    #32 0x55fdbef9ecb4 in _start (/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/test_bitcoin+0x1b7cb4)
  Uninitialized value was created by a heap allocation
    #0 0x55fdbefd7682 in malloc /msan/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp:955:3
    #1 0x55fdc1e786a9 in sqlite3MemMalloc /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:25163:7
    #2 0x55fdc1d6ec7c in mallocWithAlarm /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:28846:7
    #3 0x55fdc1d4d9f9 in sqlite3Malloc /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:28876:5
    #4 0x55fdc1d62959 in sqlite3DbMallocRaw /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:29176:7
    #5 0x55fdc1d78526 in sqlite3PagerOpen /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:57938:17
    #6 0x55fdc1d77d4b in sqlite3BtreeOpen /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:68679:10
    #7 0x55fdc1d69c44 in openDatabase /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:171911:8
    #8 0x55fdc1d69f8a in sqlite3_open_v2 /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:172034:10
    #9 0x55fdc0b4e78c in wallet::SQLiteDatabase::Open() src/wallet/sqlite.cpp:256:19
    #10 0x55fdc0b47887 in wallet::SQLiteDatabase::SQLiteDatabase(fs::path const&, fs::path const&, wallet::DatabaseOptions const&, bool) src/wallet/sqlite.cpp:139:9
    #11 0x55fdc0b5ae91 in std::__1::__unique_if<wallet::SQLiteDatabase>::__unique_single std::__1::make_unique[abi:v170000]<wallet::SQLiteDatabase, std::__1::__fs::filesystem::path, fs::path&, wallet::DatabaseOptions const&>(std::__1::__fs::filesystem::path&&, fs::path&, wallet::DatabaseOptions const&) /msan/cxx_build/include/c++/v1/__memory/unique_ptr.h:689:30
    #12 0x55fdc0b59670 in wallet::MakeSQLiteDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/sqlite.cpp:641:19
    #13 0x55fdc0aecff5 in wallet::MakeDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/walletdb.cpp:1501:16
    #14 0x55fdc0a20f85 in wallet::MakeWalletDatabase(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/wallet.cpp:2852:12
    #15 0x55fdc07ba91a in wallet::TestLoadWallet(wallet::WalletContext&) src/wallet/test/util.cpp:69:21
    #16 0x55fdc064ea71 in wallet::wallet_tests::CreateWallet::test_method() src/wallet/test/wallet_tests.cpp:792:19
    #17 0x55fdc064d39a in wallet::wallet_tests::CreateWallet_invoker() src/wallet/test/wallet_tests.cpp:785:1
    #18 0x55fdbf29d295 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:117:11
    #19 0x55fdbf18987e in boost::function0<void>::operator()() const /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:763:14
    #20 0x55fdbf18987e in boost::detail::forward::operator()() /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1388:32
    #21 0x55fdbf18987e in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /ci_container_base/depends/x86_64-pc-linux-gnu/include/boost/function/function_template.hpp:137:18
SUMMARY: MemorySanitizer: use-of-uninitialized-value /ci_container_base/depends/work/build/x86_64-pc-linux-gnu/sqlite/3380500-e38b918af09/sqlite3.c:32670:28 in sqlite3Strlen30
Exiting
make[2]: *** [Makefile:20444: check-am] Error 2
make[1]: *** [Makefile:20109: check-recursive] Error 1
make[1]: Leaving directory '/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src'
Exit status: 2

@maflcko
Copy link
Member

maflcko commented Sep 14, 2023

Though, I wonder what this is (unrelated?) https://cirrus-ci.com/task/4563169004224512?logs=ci#L5461:

test/net_tests.cpp(1333): Entering test case "v2transport_test"
test/net_tests.cpp(1364): error: in "net_tests/v2transport_test": check !ret has failed
test/net_tests.cpp(1333): Leaving test case "v2transport_test"; testing time: 1822483us

@fanquake
Copy link
Member Author

Though, I wonder what this is (unrelated?)

cc @sipa

@sipa
Copy link
Member

sipa commented Sep 15, 2023

@fanquake @MarcoFalke See #28489

fanquake added a commit to bitcoin-core/gui that referenced this pull request Sep 16, 2023
…nsport_test

3f4e1bb tests: fix incorrect assumption in v2transport_test (Pieter Wuille)

Pull request description:

  One part of the current `v2transport_test` introduced in #28196 assumes that if a bit gets modified in a message, failure should instantly be detected after sending that message. This is not correct in case the length descriptor is modified, as that may cause the receiver to need more data first. Fix this by sending more messages until failure actually occurs.

  Discovered in bitcoin/bitcoin#27495 (comment).

ACKs for top commit:
  theStack:
    ACK 3f4e1bb

Tree-SHA512: faa90bf91996cbaaef62d764e746cb222eaf6796316b0d0e13709e528750b7c0ef09172f7fecfe814dbb8c136c5259f65ca1ac79318e6768a0bfc4e626a63249
@fanquake fanquake force-pushed the msan_depends_debug_1 branch from db9d283 to 60b4e05 Compare September 16, 2023 11:17
Frank-GER pushed a commit to syscoin/syscoin that referenced this pull request Sep 19, 2023
3f4e1bb tests: fix incorrect assumption in v2transport_test (Pieter Wuille)

Pull request description:

  One part of the current `v2transport_test` introduced in bitcoin#28196 assumes that if a bit gets modified in a message, failure should instantly be detected after sending that message. This is not correct in case the length descriptor is modified, as that may cause the receiver to need more data first. Fix this by sending more messages until failure actually occurs.

  Discovered in bitcoin#27495 (comment).

ACKs for top commit:
  theStack:
    ACK 3f4e1bb

Tree-SHA512: faa90bf91996cbaaef62d764e746cb222eaf6796316b0d0e13709e528750b7c0ef09172f7fecfe814dbb8c136c5259f65ca1ac79318e6768a0bfc4e626a63249
@fanquake fanquake force-pushed the msan_depends_debug_1 branch from 60b4e05 to ccdbcaa Compare October 16, 2023 16:00
@fanquake fanquake force-pushed the msan_depends_debug_1 branch from ccdbcaa to 7c8860f Compare January 5, 2024 10:12
@fanquake
Copy link
Member Author

fanquake commented Jan 5, 2024

Pushed again as oss-fuzz closed the equivalent issue as flaky/not-reproducible, however it definitely still happens:

2024-01-05T1Uninitialized bytes in strlen at offset 113 inside [0xe0900000a05c, 114)
==35245==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0xaaaad75d2440 in sqlite3Strlen30 /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:32670:28
    #1 0xaaaad75fd278 in mkFullPathname /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:41233:15
    #2 0xaaaad75d48d0 in unixFullPathname /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:41370:12
    #3 0xaaaad76000dc in sqlite3OsFullPathname /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:24674:10
    #4 0xaaaad76002b4 in sqlite3PagerOpen /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:57943:10
    #5 0xaaaad75ff98c in sqlite3BtreeOpen /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:68679:10
    #6 0xaaaad75ef17c in openDatabase /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:171911:8
    #7 0xaaaad75ef58c in sqlite3_open_v2 /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:172034:10
    #8 0xaaaad672b7ac in wallet::SQLiteDatabase::Open() src/wallet/sqlite.cpp:256:19
    #9 0xaaaad6725a84 in wallet::SQLiteDatabase::SQLiteDatabase(fs::path const&, fs::path const&, wallet::DatabaseOptions const&, bool) src/wallet/sqlite.cpp:139:9
    #10 0xaaaad6736130 in std::__1::__unique_if<wallet::SQLiteDatabase>::__unique_single std::__1::make_unique[abi:de170006]<wallet::SQLiteDatabase, std::__1::__fs::filesystem::path, fs::path&, wallet::DatabaseOptions const&>(std::__1::__fs::filesystem::path&&, fs::path&, wallet::DatabaseOptions const&) /msan/cxx_build/include/c++/v1/__memory/unique_ptr.h:689:30
    #11 0xaaaad6734c94 in wallet::MakeSQLiteDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/sqlite.cpp:641:19
    #12 0xaaaad66da168 in wallet::MakeDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/walletdb.cpp:1501:16
    #13 0xaaaad662bd58 in wallet::MakeWalletDatabase(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/wallet.cpp:2850:12
    #14 0xaaaad642a234 in wallet::TestLoadWallet(wallet::WalletContext&) src/wallet/test/util.cpp:68:21
    #15 0xaaaad62e7008 in wallet::wallet_tests::ZapSelectTx::test_method() src/wallet/test/wallet_tests.cpp:897:19
    #16 0xaaaad62e5fa8 in wallet::wallet_tests::ZapSelectTx_invoker() src/wallet/test/wallet_tests.cpp:891:1
    #17 0xaaaad51e5da0 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/function/function_template.hpp:117:11
    #18 0xaaaad5102ad4 in boost::function0<void>::operator()() const /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/function/function_template.hpp:763:14
    #19 0xaaaad5102ad4 in boost::detail::forward::operator()() /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1388:32
    #20 0xaaaad5102ad4 in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/function/function_template.hpp:137:18
    #21 0xaaaad50130bc in boost::function0<int>::operator()() const /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/function/function_template.hpp:763:14
    #22 0xaaaad50130bc in int boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()>>(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/execution_monitor.ipp:301:30
    #23 0xaaaad50130bc in boost::execution_monitor::catch_signals(boost::function<int ()> const&) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/execution_monitor.ipp:903:16
    #24 0xaaaad5013640 in boost::execution_monitor::execute(boost::function<int ()> const&) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1301:16
    #25 0xaaaad5007f80 in boost::execution_monitor::vexecute(boost::function<void ()> const&) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1397:5
    #26 0xaaaad5007f80 in boost::unit_test::unit_test_monitor_t::execute_and_translate(boost::function<void ()> const&, unsigned long) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/unit_test_monitor.ipp:49:9
    #27 0xaaaad50690b8 in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/framework.ipp:815:44
    #28 0xaaaad5068b7c in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/framework.ipp:784:58
    #29 0xaaaad5068b7c in boost::unit_test::framework::state::execute_test_tree(unsigned long, unsigned long, boost::unit_test::framework::state::random_generator_helper const*) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/framework.ipp:784:58
    #30 0xaaaad5005224 in boost::unit_test::framework::run(unsigned long, bool) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/framework.ipp:1722:29
    #31 0xaaaad5037798 in boost::unit_test::unit_test_main(boost::unit_test::test_suite* (*)(int, char**), int, char**) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/unit_test_main.ipp:250:9
    #32 0xaaaad503857c in main /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/unit_test_main.ipp:306:12
    #33 0xffffbb6773f8  (/lib/aarch64-linux-gnu/libc.so.6+0x273f8) (BuildId: b2eb52eb317bf12f124bc94b4e32643c450e6c9a)
    #34 0xffffbb6774c8 in __libc_start_main (/lib/aarch64-linux-gnu/libc.so.6+0x274c8) (BuildId: b2eb52eb317bf12f124bc94b4e32643c450e6c9a)
    #35 0xaaaad4f4d1ac in _start (/ci_container_base/ci/scratch/build/bitcoin-aarch64-unknown-linux-gnu/src/test/test_bitcoin+0x19d1ac)

  Uninitialized value was created by a heap allocation
    #0 0xaaaad4f85a1c in malloc /msan/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp:955:3
    #1 0xaaaad772e910 in sqlite3MemMalloc /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:25163:7
    #2 0xaaaad75f4cf8 in mallocWithAlarm /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:28846:7
    #3 0xaaaad75cdfe0 in sqlite3Malloc /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:28876:5
    #4 0xaaaad75ce094 in sqlite3_malloc64 /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:28900:10
    #5 0xaaaad7717e28 in sqlite3ParseUri /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:171638:13
    #6 0xaaaad75ef0d4 in openDatabase /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:171901:10
    #7 0xaaaad75ef58c in sqlite3_open_v2 /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:172034:10
    #8 0xaaaad672b7ac in wallet::SQLiteDatabase::Open() src/wallet/sqlite.cpp:256:19
    #9 0xaaaad6725a84 in wallet::SQLiteDatabase::SQLiteDatabase(fs::path const&, fs::path const&, wallet::DatabaseOptions const&, bool) src/wallet/sqlite.cpp:139:9
    #10 0xaaaad6736130 in std::__1::__unique_if<wallet::SQLiteDatabase>::__unique_single std::__1::make_unique[abi:de170006]<wallet::SQLiteDatabase, std::__1::__fs::filesystem::path, fs::path&, wallet::DatabaseOptions const&>(std::__1::__fs::filesystem::path&&, fs::path&, wallet::DatabaseOptions const&) /msan/cxx_build/include/c++/v1/__memory/unique_ptr.h:689:30
    #11 0xaaaad6734c94 in wallet::MakeSQLiteDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/sqlite.cpp:641:19
    #12 0xaaaad66da168 in wallet::MakeDatabase(fs::path const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/walletdb.cpp:1501:16
    #13 0xaaaad662bd58 in wallet::MakeWalletDatabase(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, wallet::DatabaseOptions const&, wallet::DatabaseStatus&, bilingual_str&) src/wallet/wallet.cpp:2850:12
    #14 0xaaaad642a234 in wallet::TestLoadWallet(wallet::WalletContext&) src/wallet/test/util.cpp:68:21
    #15 0xaaaad62e7008 in wallet::wallet_tests::ZapSelectTx::test_method() src/wallet/test/wallet_tests.cpp:897:19
    #16 0xaaaad62e5fa8 in wallet::wallet_tests::ZapSelectTx_invoker() src/wallet/test/wallet_tests.cpp:891:1
    #17 0xaaaad51e5da0 in boost::detail::function::void_function_invoker0<void (*)(), void>::invoke(boost::detail::function::function_buffer&) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/function/function_template.hpp:117:11
    #18 0xaaaad5102ad4 in boost::function0<void>::operator()() const /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/function/function_template.hpp:763:14
    #19 0xaaaad5102ad4 in boost::detail::forward::operator()() /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/execution_monitor.ipp:1388:32
    #20 0xaaaad5102ad4 in boost::detail::function::function_obj_invoker0<boost::detail::forward, int>::invoke(boost::detail::function::function_buffer&) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/function/function_template.hpp:137:18
    #21 0xaaaad50130bc in boost::function0<int>::operator()() const /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/function/function_template.hpp:763:14
    #22 0xaaaad50130bc in int boost::detail::do_invoke<boost::shared_ptr<boost::detail::translator_holder_base>, boost::function<int ()>>(boost::shared_ptr<boost::detail::translator_holder_base> const&, boost::function<int ()> const&) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/execution_monitor.ipp:301:30
    #23 0xaaaad50130bc in boost::execution_monitor::catch_signals(boost::function<int ()> const&) /ci_container_base/depends/aarch64-unknown-linux-gnu/include/boost/test/impl/execution_monitor.ipp:903:16

SUMMARY: MemorySanitizer: use-of-uninitialized-value /ci_container_base/depends/work/build/aarch64-unknown-linux-gnu/sqlite/3380500-6ac42047a53/sqlite3.c:32670:28 in sqlite3Strlen30
Exiting
make[3]: *** [Makefile:22640: wallet/test/wallet_tests.cpp.test] Error 1
make[3]: Leaving directory '/ci_container_base/ci/scratch/build/bitcoin-aarch64-unknown-linux-gnu/src'
make[2]: *** [Makefile:20579: check-am] Error 2
make[2]: Leaving directory '/ci_container_base/ci/scratch/build/bitcoin-aarch64-unknown-linux-gnu/src'
make[1]: *** [Makefile:20244: check-recursive] Error 1
make[1]: Leaving directory '/ci_container_base/ci/scratch/build/bitcoin-aarch64-unknown-linux-gnu/src'
make: *** [Makefile:816: check-recursive] Error 1

real	53m21.651s
user	304m26.725s
sys	21m2.416s

@fanquake fanquake force-pushed the msan_depends_debug_1 branch from 5af6c14 to c8dfd04 Compare January 25, 2024 15:51
@fanquake fanquake changed the title ci: Use DEBUG=1 in depends for MSAN jobs ci: Use LLVM 18.x & DEBUG=1 in depends for MSAN jobs Jan 25, 2024
@fanquake fanquake force-pushed the msan_depends_debug_1 branch from c8dfd04 to 625c366 Compare January 25, 2024 16:30
@DrahtBot
Copy link
Contributor

🚧 At least one of the CI tasks failed. Make sure to run all tests locally, according to the
documentation.

Possibly this is due to a silent merge conflict (the changes in this pull request being
incompatible with the current code in the target branch). If so, make sure to rebase on the latest
commit of the target branch.

Leave a comment here, if you need help tracking down a confusing failure.

Debug: https://github.com/bitcoin/bitcoin/runs/20868472179

Followup to bitcoin#27448, which was deffered, as it produces bitcoin#27448 and
another similar issue in sqlite, see comment here:
bitcoin#27448 (comment).
@fanquake fanquake force-pushed the msan_depends_debug_1 branch from 625c366 to 8531e1e Compare January 26, 2024 13:39
@fanquake fanquake changed the title ci: Use LLVM 18.x & DEBUG=1 in depends for MSAN jobs ci: Use LLVM 17.0.6 & DEBUG=1 in depends for MSAN jobs Jan 26, 2024
@fanquake fanquake marked this pull request as ready for review January 26, 2024 13:40
@fanquake
Copy link
Member Author

I'm seeing multiple other issues when switching over to LLVM 18. Reverted to 17.0.6 for now. I think we could make this change to re-enable DEBUG=1, and follow up with LLVM 18 in future?

@maflcko
Copy link
Member

maflcko commented Jan 29, 2024

lgtm ACK 8531e1e

@fanquake fanquake merged commit 87fcc93 into bitcoin:master Jan 29, 2024
@fanquake fanquake deleted the msan_depends_debug_1 branch January 29, 2024 16:46
@bitcoin bitcoin locked and limited conversation to collaborators Jan 28, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants