PragmaTwice commented on PR #3201:
URL: https://github.com/apache/kvrocks/pull/3201#issuecomment-3342833450

   ```
   WARNING: ThreadSanitizer: data race (pid=109110)
     Write of size 8 at 0x7b080001a9c0 by main thread (mutexes: write M0):
       #0 operator delete(void*) <null> (kvrocks+0x4f32fe) (BuildId: 
706833242cde249f)
       #1 rocksdb::ColumnFamilyHandleImpl::~ColumnFamilyHandleImpl() 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/column_family.cc:54:51
 (kvrocks+0x663671) (BuildId: 706833242cde249f)
       #2 rocksdb::DB::DestroyColumnFamilyHandle(rocksdb::ColumnFamilyHandle*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl.cc:5230:3
 (kvrocks+0x755f1d) (BuildId: 706833242cde249f)
       #3 engine::Storage::CloseDB() 
/home/runner/work/kvrocks/kvrocks/src/storage/storage.cc:106:40 
(kvrocks+0x16693ee) (BuildId: 706833242cde249f)
       #4 engine::Storage::~Storage() 
/home/runner/work/kvrocks/kvrocks/src/storage/storage.cc:90:3 
(kvrocks+0x1668e2e) (BuildId: 706833242cde249f)
       #5 main /home/runner/work/kvrocks/kvrocks/src/cli/main.cc:215:1 
(kvrocks+0x4f680a) (BuildId: 706833242cde249f)
   
     Previous read of size 8 at 0x7b080001a9c0 by thread T1:
       #0 rocksdb::DBImpl::FailIfCfHasTs(rocksdb::ColumnFamilyHandle const*) 
const 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl.h:3266:49
 (kvrocks+0x76ed01) (BuildId: 706833242cde249f)
       #1 rocksdb::DBImpl::GetImpl(rocksdb::ReadOptions const&, rocksdb::Slice 
const&, rocksdb::DBImpl::GetImplOptions&) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl.cc:2342:22
 (kvrocks+0x73e5bc) (BuildId: 706833242cde249f)
       #2 rocksdb::DBImpl::GetImpl(rocksdb::ReadOptions const&, 
rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, rocksdb::PinnableSlice*, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl.cc:2198:14
 (kvrocks+0x739e4c) (BuildId: 706833242cde249f)
       #3 rocksdb::DBImpl::Get(rocksdb::ReadOptions const&, 
rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, rocksdb::PinnableSlice*, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl.cc:2186:14
 (kvrocks+0x739e4c)
       #4 rocksdb::DB::Get(rocksdb::ReadOptions const&, 
rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, rocksdb::PinnableSlice*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/include/rocksdb/db.h:691:12
 (kvrocks+0x16025e9) (BuildId: 706833242cde249f)
       #5 rocksdb::DB::Get(rocksdb::ReadOptions const&, 
rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/include/rocksdb/db.h:702:14
 (kvrocks+0x16025e9)
       #6 engine::SubKeyFilter::GetMetadata(InternalKey const&, Metadata*) 
const /home/runner/work/kvrocks/kvrocks/src/storage/compact_filter.cc:62:13 
(kvrocks+0x16018c2) (BuildId: 706833242cde249f)
       #7 engine::SubKeyFilter::Filter(int, rocksdb::Slice const&, 
rocksdb::Slice const&, std::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >*, bool*) const 
/home/runner/work/kvrocks/kvrocks/src/storage/compact_filter.cc:126:14 
(kvrocks+0x1602cf6) (BuildId: 706833242cde249f)
       #8 rocksdb::CompactionFilter::FilterV2(int, rocksdb::Slice const&, 
rocksdb::CompactionFilter::ValueType, rocksdb::Slice 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/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/include/rocksdb/compaction_filter.h:240:19
 (kvrocks+0x16049e3) (BuildId: 706833242cde249f)
       #9 rocksdb::CompactionFilter::FilterV3(int, rocksdb::Slice const&, 
rocksdb::CompactionFilter::ValueType, rocksdb::Slice const*, 
std::vector<rocksdb::WideColumn, std::allocator<rocksdb::WideColumn> > const*, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
>*, std::vector<std::pair<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::allocator<std::pair<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::__cxx11::basic_string<char, std::char_traits<char>, 
std::allocator<char> >*) const 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/include/rocksdb/compaction_filter.h:299:12
 (kvrocks+0x1604ab2) (BuildId: 706833242cde249f)
       #10 rocksdb::CompactionIterator::InvokeFilterIfNeeded(bool*, 
rocksdb::Slice*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/compaction/compaction_iterator.cc:335:38
 (kvrocks+0x6bdacb) (BuildId: 706833242cde249f)
       #11 rocksdb::CompactionIterator::NextFromInput() 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/compaction/compaction_iterator.cc:565:12
 (kvrocks+0x6ba716) (BuildId: 706833242cde249f)
       #12 rocksdb::CompactionIterator::Next() 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/compaction/compaction_iterator.cc:209:5
 (kvrocks+0x6bd22b) (BuildId: 706833242cde249f)
       #13 
rocksdb::CompactionJob::ProcessKeyValueCompaction(rocksdb::SubcompactionState*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/compaction/compaction_job.cc:1463:13
 (kvrocks+0x6251fc) (BuildId: 706833242cde249f)
       #14 rocksdb::CompactionJob::Run() 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/compaction/compaction_job.cc:693:3
 (kvrocks+0x61f429) (BuildId: 706833242cde249f)
       #15 rocksdb::DBImpl::BackgroundCompaction(bool*, rocksdb::JobContext*, 
rocksdb::LogBuffer*, rocksdb::DBImpl::PrepickedCompaction*, 
rocksdb::Env::Priority) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl_compaction_flush.cc:4240:20
 (kvrocks+0x7e6678) (BuildId: 706833242cde249f)
       #16 
rocksdb::DBImpl::BackgroundCallCompaction(rocksdb::DBImpl::PrepickedCompaction*,
 rocksdb::Env::Priority) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl_compaction_flush.cc:3426:16
 (kvrocks+0x7e2157) (BuildId: 706833242cde249f)
       #17 rocksdb::DBImpl::BGWorkCompaction(void*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl_compaction_flush.cc:3095:42
 (kvrocks+0x7dd7ac) (BuildId: 706833242cde249f)
       #18 void std::__invoke_impl<void, void (*&)(void*), 
void*&>(std::__invoke_other, void (*&)(void*), void*&) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/invoke.h:61:14
 (kvrocks+0xe00e1e) (BuildId: 706833242cde249f)
       #19 std::__invoke_result<void (*&)(void*), void*&>::type 
std::__invoke<void (*&)(void*), void*&>(void (*&)(void*), void*&) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/invoke.h:96:14
 (kvrocks+0xe00e1e)
       #20 void std::_Bind<void (* (void*))(void*)>::__call<void, 
0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/functional:495:11
 (kvrocks+0xe00e1e)
       #21 void std::_Bind<void (* (void*))(void*)>::operator()<void>() 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/functional:580:17
 (kvrocks+0xe00e1e)
       #22 void std::__invoke_impl<void, std::_Bind<void (* 
(void*))(void*)>&>(std::__invoke_other, std::_Bind<void (* (void*))(void*)>&) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/invoke.h:61:14
 (kvrocks+0xe00e1e)
       #23 std::enable_if<is_invocable_r_v<void, std::_Bind<void (* 
(void*))(void*)>&>, void>::type std::__invoke_r<void, std::_Bind<void (* 
(void*))(void*)>&>(std::_Bind<void (* (void*))(void*)>&) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/invoke.h:111:2
 (kvrocks+0xe00e1e)
       #24 std::_Function_handler<void (), std::_Bind<void (* (void*))(void*)> 
>::_M_invoke(std::_Any_data const&) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/std_function.h:290:9
 (kvrocks+0xe00e1e)
       #25 std::function<void ()>::operator()() const 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/std_function.h:591:9
 (kvrocks+0xdf974a) (BuildId: 706833242cde249f)
       #26 rocksdb::ThreadPoolImpl::Impl::BGThread(unsigned long) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/util/threadpool_imp.cc:311:5
 (kvrocks+0xdf974a)
       #27 rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper(void*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/util/threadpool_imp.cc:352:7
 (kvrocks+0xdf994b) (BuildId: 706833242cde249f)
       #28 void std::__invoke_impl<void, void (*)(void*), 
rocksdb::BGThreadMetadata*>(std::__invoke_other, void (*&&)(void*), 
rocksdb::BGThreadMetadata*&&) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/invoke.h:61:14
 (kvrocks+0xdfd8f5) (BuildId: 706833242cde249f)
       #29 std::__invoke_result<void (*)(void*), 
rocksdb::BGThreadMetadata*>::type std::__invoke<void (*)(void*), 
rocksdb::BGThreadMetadata*>(void (*&&)(void*), rocksdb::BGThreadMetadata*&&) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/invoke.h:96:14
 (kvrocks+0xdfd8f5)
       #30 void std::thread::_Invoker<std::tuple<void (*)(void*), 
rocksdb::BGThreadMetadata*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/std_thread.h:279:13
 (kvrocks+0xdfd8f5)
       #31 std::thread::_Invoker<std::tuple<void (*)(void*), 
rocksdb::BGThreadMetadata*> >::operator()() 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/std_thread.h:286:11
 (kvrocks+0xdfd8f5)
       #32 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void 
(*)(void*), rocksdb::BGThreadMetadata*> > >::_M_run() 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/std_thread.h:231:13
 (kvrocks+0xdfd8f5)
       #33 execute_native_thread_routine fpconv.c (kvrocks+0x10fc0f2) (BuildId: 
706833242cde249f)
   
     Mutex M0 (0x7ffc66f9a970) created at:
       #0 pthread_rwlock_wrlock <null> (kvrocks+0x47569a) (BuildId: 
706833242cde249f)
       #1 std::__glibcxx_rwlock_wrlock(pthread_rwlock_t*) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/shared_mutex:80:3
 (kvrocks+0x166a9a7) (BuildId: 706833242cde249f)
       #2 std::__shared_mutex_pthread::lock() 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/shared_mutex:193:19
 (kvrocks+0x166a9a7)
       #3 std::shared_mutex::lock() 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/shared_mutex:420:27
 (kvrocks+0x166a9a7)
       #4 std::unique_lock<std::shared_mutex>::lock() 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/unique_lock.h:139:17
 (kvrocks+0x166a9a7)
       #5 std::unique_lock<std::shared_mutex>::unique_lock(std::shared_mutex&) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/unique_lock.h:69:2
 (kvrocks+0x166a9a7)
       #6 engine::Storage::WriteLockGuard() 
/home/runner/work/kvrocks/kvrocks/src/storage/storage.cc:1108:72 
(kvrocks+0x166a9a7)
       #7 engine::Storage::Open(DBOpenMode) 
/home/runner/work/kvrocks/kvrocks/src/storage/storage.cc:284:16 
(kvrocks+0x166a9a7)
       #8 main /home/runner/work/kvrocks/kvrocks/src/cli/main.cc:200:15 
(kvrocks+0x4f61e6) (BuildId: 706833242cde249f)
   
     Thread T1 'rocksdb:low' (tid=109112, running) created by main thread at:
       #0 pthread_create <null> (kvrocks+0x472cad) (BuildId: 706833242cde249f)
       #1 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, 
std::default_delete<std::thread::_State> >, void (*)()) <null> 
(kvrocks+0x10fc1c8) (BuildId: 706833242cde249f)
       #2 rocksdb::ThreadPoolImpl::Impl::SetBackgroundThreadsInternal(int, 
bool) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/util/threadpool_imp.cc:369:5
 (kvrocks+0xdf99f8) (BuildId: 706833242cde249f)
       #3 rocksdb::ThreadPoolImpl::IncBackgroundThreadsIfNeeded(int) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/util/threadpool_imp.cc:494:10
 (kvrocks+0xdfae2c) (BuildId: 706833242cde249f)
       #4 rocksdb::(anonymous 
namespace)::PosixEnv::IncBackgroundThreadsIfNeeded(int, rocksdb::Env::Priority) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/env/env_posix.cc:377:24
 (kvrocks+0xe984ed) (BuildId: 706833242cde249f)
       #5 rocksdb::SanitizeOptions(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, rocksdb::DBOptions 
const&, bool, rocksdb::Status*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl_open.cc:80:15
 (kvrocks+0x80e302) (BuildId: 706833242cde249f)
       #6 rocksdb::DBImpl::DBImpl(rocksdb::DBOptions const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, bool, bool, bool) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl.cc:173:27
 (kvrocks+0x72582b) (BuildId: 706833242cde249f)
       #7 std::__detail::_MakeUniq<rocksdb::DBImpl>::__single_object 
std::make_unique<rocksdb::DBImpl, rocksdb::DBOptions const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, bool const&, bool const&>(rocksdb::DBOptions const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, bool const&, bool const&) 
/usr/bin/../lib/gcc/x86_64-linux-gnu/12/../../../../include/c++/12/bits/unique_ptr.h:1065:34
 (kvrocks+0x824094) (BuildId: 706833242cde249f)
       #8 rocksdb::DBImpl::Open(rocksdb::DBOptions const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, std::vector<rocksdb::ColumnFamilyDescriptor, 
std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, 
std::vector<rocksdb::ColumnFamilyHandle*, 
std::allocator<rocksdb::ColumnFamilyHandle*> >*, std::unique_ptr<rocksdb::DB, 
std::default_delete<rocksdb::DB> >*, bool, bool, bool, bool*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl_open.cc:2411:15
 (kvrocks+0x824094)
       #9 rocksdb::DB::Open(rocksdb::DBOptions const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, std::vector<rocksdb::ColumnFamilyDescriptor, 
std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, 
std::vector<rocksdb::ColumnFamilyHandle*, 
std::allocator<rocksdb::ColumnFamilyHandle*> >*, std::unique_ptr<rocksdb::DB, 
std::default_delete<rocksdb::DB> >*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl_open.cc:2240:9
 (kvrocks+0x823a61) (BuildId: 706833242cde249f)
       #10 rocksdb::DB::Open(rocksdb::Options const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, std::unique_ptr<rocksdb::DB, std::default_delete<rocksdb::DB> >*) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/db/db_impl/db_impl_open.cc:2212:14
 (kvrocks+0x8237fc) (BuildId: 706833242cde249f)
       #11 rocksdb::DB::Open(rocksdb::Options const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, rocksdb::DB**) 
/home/runner/work/kvrocks/kvrocks/build/_deps/rocksdb-src/include/rocksdb/db.h:152:16
 (kvrocks+0x166c058) (BuildId: 706833242cde249f)
       #12 StatusOr<std::unique_ptr<rocksdb::DB, 
std::default_delete<rocksdb::DB> > > 
util::details::WrapOutPtrToUnique<rocksdb::DB, 
&(rocksdb::DB::Open(rocksdb::Options const&, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, rocksdb::DB**)), 
(Status::Code)5, rocksdb::Options const&, std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&>(rocksdb::Options const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) /home/runner/work/kvrocks/kvrocks/src/common/db_util.h:50:12 
(kvrocks+0x166c058)
       #13 util::DBOpen(rocksdb::Options const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&) /home/runner/work/kvrocks/kvrocks/src/common/db_util.h:76:10 
(kvrocks+0x166c058)
       #14 engine::Storage::CreateColumnFamilies(rocksdb::Options const&) 
/home/runner/work/kvrocks/kvrocks/src/storage/storage.cc:252:14 
(kvrocks+0x166c058)
       #15 engine::Storage::Open(DBOpenMode) 
/home/runner/work/kvrocks/kvrocks/src/storage/storage.cc:297:18 
(kvrocks+0x166c058)
       #16 main /home/runner/work/kvrocks/kvrocks/src/cli/main.cc:200:15 
(kvrocks+0x4f61e6) (BuildId: 706833242cde249f)
       #17 main /home/runner/work/kvrocks/kvrocks/src/cli/main.cc:200:15 
(kvrocks+0x4f61e6) (BuildId: 706833242cde249f)
       #18 main /home/runner/work/kvrocks/kvrocks/src/cli/main.cc:200:15 
(kvrocks+0x4f61e6) (BuildId: 706833242cde249f)
   
   SUMMARY: ThreadSanitizer: data race 
(/home/runner/work/kvrocks/kvrocks/build/kvrocks+0x4f32fe) (BuildId: 
706833242cde249f) in operator delete(void*)
   ```
   
   For record. I'll rerun.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to