Open
Description
Although the data race was observed in rust-rocksdb, it seems it is coming from the underlying rocksdb code.
SUMMARY: ThreadSanitizer: data race /home/sol/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rocksdb-0.22.0/src/db.rs:584:9 in rocksdb::db::DBCommon$LT$T$C$rocksdb..db..DBWithThreadModeInner$GT$::open_cf_descriptors::h004561e575d92139
WARNING: ThreadSanitizer: data race (pid=3027002)
Read of size 2 at 0x720800d8c8d0 by thread T2:
#0 bcmp /rustc/llvm/src/llvm-project/compiler-rt/lib/tsan/rtl/../../sanitizer_common/sanitizer_common_interceptors.inc:858:3 (solana_core-651f1956f27a8fa6+0x11b1a10) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#1 std::char_traits<char>::compare(char const*, char const*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/char_traits.h:389:9 (solana_core-651f1956f27a8fa6+0x2d21653) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#2 __gnu_cxx::__enable_if<__is_char<char>::__value, bool>::__type std::operator==<char>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:6237:12 (solana_core-651f1956f27a8fa6+0x2d21653)
#3 std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_function.h:370:20 (solana_core-651f1956f27a8fa6+0x2d21653)
#3 std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_function.h:370:20 (solana_core-651f1956f27a8fa6+0x2d21653)
#4 std::__detail::_Hashtable_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Hashtable_traits<true, false, true> >::_M_equals(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, std::__detail::_Hash_node_value<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, true> const&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/hashtable_policy.h:1617:32 (solana_core-651f1956f27a8fa6+0x2d21653)
#5 std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_find_before_node(unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long) const
#7 std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/hashtable.h:1610:29 (solana_core-651f1956f27a8fa6+0x2d21653)
#8 rocksdb::db::DBCommon$LT$T$C$rocksdb..db..DBWithThreadModeInner$GT$::open_cf_descriptors::h004561e575d92139 /home/sol/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rocksdb-0.22.0/src/db.rs:584:9 (solana_core-651f1956f27a8fa6+0x28a30ad) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#9 solana_ledger::blockstore_db::Rocks::open::h243a02a76d8c139d /home/sol/src/agave.1/ledger/src/blockstore_db.rs:124:17 (solana_core-651f1956f27a8fa6+0x28a30ad)
#10 solana_ledger::blockstore::Blockstore::do_open::h355a1d10b828993b /home/sol/src/agave.1/ledger/src/blockstore.rs:400:27 (solana_core-651f1956f27a8fa6+0x283b7d9) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#11 solana_ledger::blockstore::Blockstore::open::hc5bf03bafb83ef99 /home/sol/src/agave.1/ledger/src/blockstore.rs:384:9 (solana_core-651f1956f27a8fa6+0x283b059) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
Previous write of size 2 at 0x720800d8c8d0 by thread T14:
#0 memcpy /rustc/llvm/src/llvm-project/compiler-rt/lib/tsan/rtl/../../sanitizer_common/sanitizer_common_interceptors_memintrinsics.inc:115:5 (solana_core-651f1956f27a8fa6+0x11a0d1e) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#1 std::char_traits<char>::copy(char*, char const*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/char_traits.h:437:33 (solana_core-651f1956f27a8fa6+0x309db95) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#2 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy(char*, char const*, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:359:4 (solana_core-651f1956f27a8fa6+0x309db95)
#3 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy_chars(char*, char const*, char const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:406:9 (solana_core-651f1956f27a8fa6+0x309db95)
#4 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.tcc:225:6 (solana_core-651f1956f27a8fa6+0x309db95)
#5 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct_aux<char const*>(char const*, char const*, std::__false_type) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:255:11 (solana_core-651f1956f27a8fa6+0x309db95)
#6 void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:274:4 (solana_core-651f1956f27a8fa6+0x309db95)
#7 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long) /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:490:2 (solana_core-651f1956f27a8fa6+0x309db95)
#8 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/basic_string.h:2855:16 (solana_core-651f1956f27a8fa6+0x309db95)
#9 rocksdb::AddProperty(std::unordered_map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) /home/sol/.cargo/registry/src/index.crates.io-6f17d22bba15001f/librocksdb-sys-0.16.0+8.10.0/build_version.cc:38:21 (solana_core-651f1956f27a8fa6+0x309db95)
#10 rocksdb::db::DBCommon$LT$T$C$rocksdb..db..DBWithThreadModeInner$GT$::open_cf_descriptors::h004561e575d92139 /home/sol/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rocksdb-0.22.0/src/db.rs:584:9 (solana_core-651f1956f27a8fa6+0x28a30ad) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#11 solana_ledger::blockstore_db::Rocks::open::h243a02a76d8c139d /home/sol/src/agave.1/ledger/src/blockstore_db.rs:124:17 (solana_core-651f1956f27a8fa6+0x28a30ad)
Location is heap block of size 19 at 0x720800d8c8c0 allocated by thread T14:
#0 malloc /rustc/llvm/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:666:5 (solana_core-651f1956f27a8fa6+0x11a38d0) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#1 operator new(unsigned long) <null> (libstdc++.so.6+0xae98b) (BuildId: e37fe1a879783838de78cbc8c80621fa685d58a2)
#2 rocksdb::db::DBCommon$LT$T$C$rocksdb..db..DBWithThreadModeInner$GT$::open_cf_descriptors::h004561e575d92139 /home/sol/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rocksdb-0.22.0/src/db.rs:584:9 (solana_core-651f1956f27a8fa6+0x28a30ad) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#3 solana_ledger::blockstore_db::Rocks::open::h243a02a76d8c139d /home/sol/src/agave.1/ledger/src/blockstore_db.rs:124:17 (solana_core-651f1956f27a8fa6+0x28a30ad)
#4 solana_ledger::blockstore::Blockstore::do_open::h355a1d10b828993b /home/sol/src/agave.1/ledger/src/blockstore.rs:400:27 (solana_core-651f1956f27a8fa6+0x283b7d9) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#5 solana_ledger::blockstore::Blockstore::open::hc5bf03bafb83ef99 /home/sol/src/agave.1/ledger/src/blockstore.rs:384:9 (solana_core-651f1956f27a8fa6+0x283b059) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#6 solana_core::banking_stage::consumer::tests::test_write_persist_transaction_status::h81ec02b0f80a09bb /home/sol/src/agave.1/core/src/banking_stage/consumer.rs:1969:30 (solana_core-651f1956f27a8fa6+0x15664b9) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#7 solana_core::banking_stage::consumer::tests::repeat_these_tests::_$u7b$$u7b$closure$u7d$$u7d$::_$u7b$$u7b$closure$u7d$$u7d$::hdaf857d1935a694f /home/sol/src/agave.1/core/src/banking_stage/consumer.rs:1905:25 (solana_core-651f1956f27a8fa6+0x173f36f) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
Thread T2 (tid=3027005, running) created by thread T1 at:
#0 pthread_create /rustc/llvm/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1023:3 (solana_core-651f1956f27a8fa6+0x11a53f1) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#1 std::sys::pal::unix::thread::Thread::new::h3d0b518cde20be63 /home/sol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/pal/unix/thread.rs:84:19 (solana_core-651f1956f27a8fa6+0x43d86e1) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#2 std::thread::Builder::spawn_unchecked_::h05d3dede5f472eb6 /home/sol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:580:30 (solana_core-651f1956f27a8fa6+0x198c159) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#3 std::thread::Builder::spawn_unchecked::h1b5a88258016c5a2 /home/sol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:450:32 (solana_core-651f1956f27a8fa6+0x198c159)
#4 std::thread::Builder::spawn::h63cb056caf5657ca /home/sol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:383:18 (solana_core-651f1956f27a8fa6+0x150a37a) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#5 std::thread::spawn::hecaf0c7830713405 /home/sol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:710:20 (solana_core-651f1956f27a8fa6+0x150a37a)
#6 solana_core::banking_stage::consumer::tests::repeat_these_tests::_$u7b$$u7b$closure$u7d$$u7d$::h030818b39a4475bd /home/sol/src/agave.1/core/src/banking_stage/consumer.rs:1904:21 (solana_core-651f1956f27a8fa6+0x150a37a)
Thread T14 (tid=3027017, running) created by thread T1 at:
#0 pthread_create /rustc/llvm/src/llvm-project/compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp:1023:3 (solana_core-651f1956f27a8fa6+0x11a53f1) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#1 std::sys::pal::unix::thread::Thread::new::h3d0b518cde20be63 /home/sol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/pal/unix/thread.rs:84:19 (solana_core-651f1956f27a8fa6+0x43d86e1) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#2 std::thread::Builder::spawn_unchecked_::h05d3dede5f472eb6 /home/sol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:580:30 (solana_core-651f1956f27a8fa6+0x198c159) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#3 std::thread::Builder::spawn_unchecked::h1b5a88258016c5a2 /home/sol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:450:32 (solana_core-651f1956f27a8fa6+0x198c159)
#4 std::thread::Builder::spawn::h63cb056caf5657ca /home/sol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:383:18 (solana_core-651f1956f27a8fa6+0x150a37a) (BuildId: 868853df86aa5f6906585e192ae1cce97a5edfdf)
#5 std::thread::spawn::hecaf0c7830713405 /home/sol/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:710:20 (solana_core-651f1956f27a8fa6+0x150a37a)
#6 solana_core::banking_stage::consumer::tests::repeat_these_tests::_$u7b$$u7b$closure$u7d$$u7d$::h030818b39a4475bd /home/sol/src/agave.1/core/src/banking_stage/consumer.rs:1904:21 (solana_core-651f1956f27a8fa6+0x150a37a)
Metadata
Assignees
Labels
No labels
Activity