fuzz: msan fuzz CI currently broken on x86_64 #28570

issue fanquake opened this issue on October 3, 2023
  1. fanquake commented at 11:54 AM on October 3, 2023: member

    Been the case since #28476 (see post-merge discussion). Still the case with master + LLVM 17.0.2.

    i.e inside the msan fuzz CI container:

    ./ci_container_base/ci/scratch//build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/fuzz
    ==29842==WARNING: MemorySanitizer: use-of-uninitialized-value
        [#0](/bitcoin-bitcoin/0/) 0x556ca7b9b27f in SetArgs(int, char**) src/test/fuzz/fuzz.cpp:48:5
        [#1](/bitcoin-bitcoin/1/) 0x556ca7b9b27f in LLVMFuzzerInitialize src/test/fuzz/fuzz.cpp:185:5
        [#2](/bitcoin-bitcoin/2/) 0x556ca73f18a3 in fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) /msan/llvm-project/compiler-rt/lib/fuzzer/FuzzerDriver.cpp:647:5
        [#3](/bitcoin-bitcoin/3/) 0x556ca741fb92 in main /msan/llvm-project/compiler-rt/lib/fuzzer/FuzzerMain.cpp:20:10
        [#4](/bitcoin-bitcoin/4/) 0x7f7f1d7f7d8f  (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f) (BuildId: 229b7dc509053fe4df5e29e8629911f0c3bc66dd)
        [#5](/bitcoin-bitcoin/5/) 0x7f7f1d7f7e3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e3f) (BuildId: 229b7dc509053fe4df5e29e8629911f0c3bc66dd)
        [#6](/bitcoin-bitcoin/6/) 0x556ca73e48b4 in _start (/ci_container_base/ci/scratch/build/bitcoin-x86_64-pc-linux-gnu/src/test/fuzz/fuzz+0x8268b4)
    
      Member fields were destroyed
        [#0](/bitcoin-bitcoin/0/) 0x556ca74af2dd in __sanitizer_dtor_callback_fields /msan/llvm-project/compiler-rt/lib/msan/msan_interceptors.cpp:982:5
        [#1](/bitcoin-bitcoin/1/) 0x556ca946bed8 in std::__1::unique_ptr<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, void*>, std::__1::__tree_node_destructor<std::__1::allocator<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, void*>>>>::~unique_ptr[abi:v170002]() /msan/cxx_build/include/c++/v1/__memory/unique_ptr.h:137:44
        [#2](/bitcoin-bitcoin/2/) 0x556ca946bed8 in std::__1::unique_ptr<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, void*>, std::__1::__tree_node_destructor<std::__1::allocator<std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, void*>>>>::~unique_ptr[abi:v170002]() /msan/cxx_build/include/c++/v1/__memory/unique_ptr.h:266:84
        [#3](/bitcoin-bitcoin/3/) 0x556ca946bed8 in std::__1::pair<std::__1::__tree_iterator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, void*>*, long>, bool> std::__1::__tree<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::less<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>>::__emplace_unique_impl<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /msan/cxx_build/include/c++/v1/__tree:2167:1
        [#4](/bitcoin-bitcoin/4/) 0x556ca73e46e4 in std::__1::pair<std::__1::__tree_iterator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, void*>*, long>, bool> std::__1::__tree<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::less<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>>::__emplace_unique[abi:v170002]<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /msan/cxx_build/include/c++/v1/__tree:1200:16
        [#5](/bitcoin-bitcoin/5/) 0x556ca73e46e4 in std::__1::pair<std::__1::__tree_const_iterator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::__tree_node<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, void*>*, long>, bool> std::__1::set<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::less<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, std::__1::allocator<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>>::emplace[abi:v170002]<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&) /msan/cxx_build/include/c++/v1/set:787:29
        [#6](/bitcoin-bitcoin/6/) 0x556ca73e46e4 in CRPCConvertTable::CRPCConvertTable() src/rpc/client.cpp:342:23
        [#7](/bitcoin-bitcoin/7/) 0x556ca73e46e4 in __cxx_global_var_init.224 src/rpc/client.cpp:346:25
        [#8](/bitcoin-bitcoin/8/) 0x556ca73e46e4 in _GLOBAL__sub_I_client.cpp src/rpc/client.cpp
        [#9](/bitcoin-bitcoin/9/) 0x7f7f1d7f7eba in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29eba) (BuildId: 229b7dc509053fe4df5e29e8629911f0c3bc66dd)
    
    SUMMARY: MemorySanitizer: use-of-uninitialized-value src/test/fuzz/fuzz.cpp:48:5 in SetArgs(int, char**)
    Exiting
    
  2. fanquake added the label Tests on Oct 3, 2023
  3. maflcko commented at 12:01 PM on October 3, 2023: member

    Took another look, and this has something to do with dropping -DLIBCXX_ENABLE_DEBUG_MODE=ON

    Locally, the same problem happens on 16.0.6 when dropping -DLIBCXX_ENABLE_DEBUG_MODE=ON.

    :thinking:

    Originally posted by @MarcoFalke in #28476 (comment)

  4. fanquake commented at 11:57 AM on March 20, 2024: member

    Fixed by #29676.

  5. fanquake closed this on Mar 20, 2024

  6. bitcoin locked this on Mar 20, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-13 21:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me