Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-41406

ThreadSanitizer: data race in BasicLinkedList::purgeTombstones

    XMLWordPrintable

Details

    • Triaged
    • 1
    • Unknown
    • KV Sprint 2020-Oct

    Description

      After upgrading TSan CV job to use clang-9 (from GCC 7.3), the following data race is reported:

      Running [0042/0099]: test dcp cursor dropping backfill...==================
       WARNING: ThreadSanitizer: data race (pid=2802)
         Write of size 8 at 0x7b4c00000880 by thread T7:
           #0 BasicLinkedList::purgeTombstones(long, std::function<bool (DocKey const&, long, bool)>, std::function<bool ()>) build/../kv_engine/engines/ep/src/linked_list.cc (libep.so+0x3cdc8b)
           #1 EphemeralVBucket::purgeStaleItems(std::function<bool ()>) build/../kv_engine/engines/ep/src/ephemeral_vb.cc:373:35 (libep.so+0x333e42)
           #2 EphemeralVBucket::StaleItemDeleter::visit(VBucket&) build/../kv_engine/engines/ep/src/ephemeral_tombstone_purger.cc:205:37 (libep.so+0x33199e)
           #3 KVBucket::pauseResumeVisit(PauseResumeVBVisitor&, KVBucketIface::Position&) build/../kv_engine/engines/ep/src/kv_bucket.cc:2322:36 (libep.so+0x392648)
           #4 EphTombstoneStaleItemDeleter::run() build/../kv_engine/engines/ep/src/ephemeral_tombstone_purger.cc:274:20 (libep.so+0x32e15c)
           #5 GlobalTask::execute() build/../kv_engine/engines/ep/src/globaltask.cc:73:12 (libep.so+0x361069)
           #6 CB3ExecutorThread::run() build/../kv_engine/engines/ep/src/cb3_executorthread.cc:174:39 (libep.so+0x187dc4)
           #7 launch_executor_thread(void*) build/../kv_engine/engines/ep/src/cb3_executorthread.cc:34:15 (libep.so+0x187795)
           #8 CouchbaseThread::run() build/../platform/src/cb_pthreads.cc:58:9 (libplatform_so.so.0.1.0+0x2c0ba)
           #9 platform_thread_wrap(void*) build/../platform/src/cb_pthreads.cc:71:14 (libplatform_so.so.0.1.0+0x2a9fe)
       
         Previous read of size 8 at 0x7b4c00000880 by thread T9 (mutexes: read M1062984889428614268, write M1093947480464173216, write M1073118280647992080, write M1068051627987961632):
           #0 boost::intrusive::operator==(boost::intrusive::list_iterator<boost::intrusive::mhtraits<OrderedStoredValue, boost::intrusive::list_member_hook<void, void, void>, &(OrderedStoredValue::seqno_hook)>, false> const&, boost::intrusive::list_iterator<boost::intrusive::mhtraits<OrderedStoredValue, boost::intrusive::list_member_hook<void, void, void>, &(OrderedStoredValue::seqno_hook)>, false> const&) build/tlm/deps/boost.exploded/include/boost/intrusive/detail/list_iterator.hpp:107:15 (libep.so+0x3cfc97)
           #1 BasicLinkedList::updateListElem(std::lock_guard<std::mutex>&, std::lock_guard<std::mutex>&, OrderedStoredValue&) build/../kv_engine/engines/ep/src/linked_list.cc:82:26 (libep.so+0x3cca36)
           #2 EphemeralVBucket::modifySeqList(std::lock_guard<std::mutex>&, std::lock_guard<std::mutex>&, OrderedStoredValue&) build/../kv_engine/engines/ep/src/ephemeral_vb.cc:914:25 (libep.so+0x3343d3)
           #3 EphemeralVBucket::softDeleteStoredValue(HashTable::HashBucketLock const&, StoredValue&, bool, VBQueueItemCtx const&, unsigned long, DeleteSource) build/../kv_engine/engines/ep/src/ephemeral_vb.cc:566:17 (libep.so+0x33498e)
           #4 EphemeralVBucket::pageOut(Collections::VB::ReadHandle const&, HashTable::HashBucketLock const&, StoredValue*&) build/../kv_engine/engines/ep/src/ephemeral_vb.cc:116:42 (libep.so+0x332db6)
           #5 PagingVisitor::doEviction(HashTable::HashBucketLock const&, StoredValue*) build/../kv_engine/engines/ep/src/paging_visitor.cc:364:24 (libep.so+0x3c8710)
           #6 PagingVisitor::visit(HashTable::HashBucketLock const&, StoredValue&) build/../kv_engine/engines/ep/src/paging_visitor.cc:157:14 (libep.so+0x3c84ad)
           #7 non-virtual thunk to PagingVisitor::visit(HashTable::HashBucketLock const&, StoredValue&) build/../kv_engine/engines/ep/src/paging_visitor.cc (libep.so+0x3c87c9)
           #8 HashTable::pauseResumeVisit(HashTableVisitor&, HashTable::Position&) build/../kv_engine/engines/ep/src/hash_table.cc:1222:39 (libep.so+0x3662c8)
           #9 HashTable::visit(HashTableVisitor&) build/../kv_engine/engines/ep/src/hash_table.cc:1119:18 (libep.so+0x365fa0)
           #10 PagingVisitor::visitBucket(std::shared_ptr<VBucket> const&) build/../kv_engine/engines/ep/src/paging_visitor.cc:255:20 (libep.so+0x3c8afb)
           #11 VBCBAdaptor::run() build/../kv_engine/engines/ep/src/kv_bucket.cc:2379:22 (libep.so+0x392b98)
           #12 GlobalTask::execute() build/../kv_engine/engines/ep/src/globaltask.cc:73:12 (libep.so+0x361069)
           #13 CB3ExecutorThread::run() build/../kv_engine/engines/ep/src/cb3_executorthread.cc:174:39 (libep.so+0x187dc4)
           #14 launch_executor_thread(void*) build/../kv_engine/engines/ep/src/cb3_executorthread.cc:34:15 (libep.so+0x187795)
           #15 CouchbaseThread::run() build/../platform/src/cb_pthreads.cc:58:9 (libplatform_so.so.0.1.0+0x2c0ba)
           #16 platform_thread_wrap(void*) build/../platform/src/cb_pthreads.cc:71:14 (libplatform_so.so.0.1.0+0x2a9fe)
       
         Location is heap block of size 392 at 0x7b4c00000700 allocated by main thread:
           #0 operator new(unsigned long) <null> (ep_testsuite_dcp+0x53032b)
           #1 std::_MakeUniq<BasicLinkedList>::__single_object std::make_unique<BasicLinkedList, Vbid&, EPStats&>(Vbid&, EPStats&) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:825:30 (libep.so+0x336a75)
           #2 EphemeralVBucket::EphemeralVBucket(Vbid, vbucket_state_t, EPStats&, CheckpointConfig&, KVShard*, long, unsigned long, unsigned long, std::unique_ptr<FailoverTable, std::default_delete<FailoverTable> >, std::unique_ptr<Callback<Vbid const, VBNotifyCtx const&>, std::default_delete<Callback<Vbid const, VBNotifyCtx const&> > >, std::function<void (Vbid)>, std::function<void (void const*, ENGINE_ERROR_CODE)>, std::function<void (Vbid, long)>, Configuration&, EvictionPolicy, std::unique_ptr<Collections::VB::Manifest, std::default_delete<Collections::VB::Manifest> >, vbucket_state_t, unsigned long, unsigned long, bool, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> const*) build/../kv_engine/engines/ep/src/ephemeral_vb.cc:83:15 (libep.so+0x3329b2)
           #3 EphemeralBucket::makeVBucket(Vbid, vbucket_state_t, KVShard*, std::unique_ptr<FailoverTable, std::default_delete<FailoverTable> >, std::unique_ptr<Callback<Vbid const, VBNotifyCtx const&>, std::default_delete<Callback<Vbid const, VBNotifyCtx const&> > >, std::unique_ptr<Collections::VB::Manifest, std::default_delete<Collections::VB::Manifest> >, vbucket_state_t, long, unsigned long, unsigned long, unsigned long, unsigned long, long, bool, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> const*, unsigned long) build/../kv_engine/engines/ep/src/ephemeral_bucket.cc:202:27 (libep.so+0x325548)
           #4 KVBucket::createVBucket_UNLOCKED(Vbid, vbucket_state_t, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> const*, std::unique_lock<std::mutex>&) build/../kv_engine/engines/ep/src/kv_bucket.cc:990:13 (libep.so+0x38abbb)
           #5 KVBucket::setVBucketState(Vbid, vbucket_state_t, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> const*, TransferVB, void const*) build/../kv_engine/engines/ep/src/kv_bucket.cc:872:16 (libep.so+0x38a545)
           #6 EventuallyPersistentEngine::setVBucketState(void const*, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&, Vbid, vbucket_state_t, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long, unsigned long, double, std::allocator, nlohmann::adl_serializer> const*, TransferVB, unsigned long) build/../kv_engine/engines/ep/src/ep_engine.cc:6555:29 (libep.so+0x2e4d48)
           #7 setVBucket(EventuallyPersistentEngine*, void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&) build/../kv_engine/engines/ep/src/ep_engine.cc:1052:15 (libep.so+0x2e5cf8)
           #8 processUnknownCommand(EventuallyPersistentEngine*, void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&) build/../kv_engine/engines/ep/src/ep_engine.cc:1256:25 (libep.so+0x2d3b56)
           #9 EventuallyPersistentEngine::unknown_command(void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&) build/../kv_engine/engines/ep/src/ep_engine.cc:1344:16 (libep.so+0x2d3717)
           #10 ENGINE_ERROR_CODE std::__invoke_impl<ENGINE_ERROR_CODE, ENGINE_ERROR_CODE (EngineIface::*&)(void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&), EngineIface*&, void const*&, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)>&>(std::__invoke_memfun_deref, ENGINE_ERROR_CODE (EngineIface::*&)(void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&), EngineIface*&, void const*&, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/invoke.h:73:14 (ep_testsuite_dcp+0x6201d0)
           #11 std::__invoke_result<ENGINE_ERROR_CODE (EngineIface::*&)(void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&), EngineIface*&, void const*&, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)>&>::type std::__invoke<ENGINE_ERROR_CODE (EngineIface::*&)(void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&), EngineIface*&, void const*&, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)>&>(ENGINE_ERROR_CODE (EngineIface::*&)(void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&), EngineIface*&, void const*&, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)>&) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/invoke.h:95:14 (ep_testsuite_dcp+0x61ff9d)
           #12 ENGINE_ERROR_CODE std::_Bind<ENGINE_ERROR_CODE (EngineIface::* (EngineIface*, void const*, std::reference_wrapper<cb::mcbp::Request const>, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)>))(void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&)>::__call<ENGINE_ERROR_CODE, 0ul, 1ul, 2ul, 3ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul, 2ul, 3ul>) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c++/7.3.0/functional:467:11 (ep_testsuite_dcp+0x61fefe)
           #13 ENGINE_ERROR_CODE std::_Bind<ENGINE_ERROR_CODE (EngineIface::* (EngineIface*, void const*, std::reference_wrapper<cb::mcbp::Request const>, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)>))(void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&)>::operator()<ENGINE_ERROR_CODE>() /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c++/7.3.0/functional:549:17 (ep_testsuite_dcp+0x61fe03)
           #14 std::_Function_handler<ENGINE_ERROR_CODE (), std::_Bind<ENGINE_ERROR_CODE (EngineIface::* (EngineIface*, void const*, std::reference_wrapper<cb::mcbp::Request const>, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)>))(void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&)> >::_M_invoke(std::_Any_data const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/std_function.h:301:9 (ep_testsuite_dcp+0x61f69d)
           #15 std::function<ENGINE_ERROR_CODE ()>::operator()() const /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/std_function.h:706:14 (ep_testsuite_dcp+0x60bc08)
           #16 call_engine_and_handle_EWOULDBLOCK(MockCookie*, std::function<ENGINE_ERROR_CODE ()> const&) build/../kv_engine/programs/engine_testapp/mock_engine.cc:61:19 (ep_testsuite_dcp+0x606077)
           #17 MockEngine::unknown_command(void const*, cb::mcbp::Request const&, std::function<bool (std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, std::basic_string_view<char, std::char_traits<char> >, unsigned char, cb::mcbp::Status, unsigned long, void const*)> const&) build/../kv_engine/programs/engine_testapp/mock_engine.cc:390:29 (ep_testsuite_dcp+0x607389)
           #18 set_vbucket_state(EngineIface*, Vbid, vbucket_state_t, std::basic_string_view<char, std::char_traits<char> >) build/../kv_engine/engines/ep/tests/ep_test_apis.cc:758:12 (ep_testsuite_dcp+0x5439c9)
           #19 test_setup(EngineIface*) build/../kv_engine/engines/ep/tests/ep_testsuite_common.cc:133:16 (ep_testsuite_dcp+0x537fac)
           #20 execute_test(test, char const*, char const*) build/../kv_engine/programs/engine_testapp/engine_testapp.cc:371:18 (ep_testsuite_dcp+0x55c1ac)
           #21 main build/../kv_engine/programs/engine_testapp/engine_testapp.cc:629:37 (ep_testsuite_dcp+0x55b5db)
       
         Mutex M1062984889428614268 is already destroyed.
       
         Mutex M1093947480464173216 is already destroyed.
       
         Mutex M1073118280647992080 is already destroyed.
       
         Mutex M1068051627987961632 is already destroyed.
       
         Thread T7 'mc:NonIO_0' (tid=26328, running) created by main thread at:
           #0 pthread_create <null> (ep_testsuite_dcp+0x4a184b)
           #1 cb_create_named_thread(unsigned long*, void (*)(void*), void*, int, char const*) build/../platform/src/cb_pthreads.cc:109:11 (libplatform_so.so.0.1.0+0x2a94e)
           #2 CB3ExecutorThread::start() build/../kv_engine/engines/ep/src/cb3_executorthread.cc:51:9 (libep.so+0x18760c)
           #3 CB3ExecutorPool::_adjustWorkers(task_type_t, unsigned long) build/../kv_engine/engines/ep/src/cb3_executorpool.cc:464:33 (libep.so+0x164031)
           #4 CB3ExecutorPool::_startWorkers() build/../kv_engine/engines/ep/src/cb3_executorpool.cc:528:5 (libep.so+0x1646c2)
           #5 CB3ExecutorPool::_registerTaskable(Taskable&) build/../kv_engine/engines/ep/src/cb3_executorpool.cc:419:5 (libep.so+0x163d76)
           #6 CB3ExecutorPool::registerTaskable(Taskable&) build/../kv_engine/engines/ep/src/cb3_executorpool.cc:424:5 (libep.so+0x163de6)
           #7 KVBucket::KVBucket(EventuallyPersistentEngine&) build/../kv_engine/engines/ep/src/kv_bucket.cc:323:26 (libep.so+0x386e0d)
           #8 EphemeralBucket::EphemeralBucket(EventuallyPersistentEngine&) build/../kv_engine/engines/ep/src/ephemeral_bucket.cc:96:7 (libep.so+0x324cf7)
           #9 std::_MakeUniq<EphemeralBucket>::__single_object std::make_unique<EphemeralBucket, EventuallyPersistentEngine&>(EventuallyPersistentEngine&) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:825:34 (libep.so+0x2eff14)
           #10 EventuallyPersistentEngine::makeBucket(Configuration&) build/../kv_engine/engines/ep/src/ep_engine.cc:6540:16 (libep.so+0x2d92e3)
           #11 EventuallyPersistentEngine::initialize(char const*) build/../kv_engine/engines/ep/src/ep_engine.cc:2248:16 (libep.so+0x2d8d59)
           #12 MockTestHarness::create_bucket(bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) build/../kv_engine/programs/engine_testapp/engine_testapp.cc:212:52 (ep_testsuite_dcp+0x55d1b7)
           #13 execute_test(test, char const*, char const*) build/../kv_engine/programs/engine_testapp/engine_testapp.cc:366:43 (ep_testsuite_dcp+0x55c155)
           #14 main build/../kv_engine/programs/engine_testapp/engine_testapp.cc:629:37 (ep_testsuite_dcp+0x55b5db)
       
         Thread T9 'mc:NonIO_3' (tid=26331, running) created by main thread at:
           #0 pthread_create <null> (ep_testsuite_dcp+0x4a184b)
           #1 cb_create_named_thread(unsigned long*, void (*)(void*), void*, int, char const*) build/../platform/src/cb_pthreads.cc:109:11 (libplatform_so.so.0.1.0+0x2a94e)
           #2 CB3ExecutorThread::start() build/../kv_engine/engines/ep/src/cb3_executorthread.cc:51:9 (libep.so+0x18760c)
           #3 CB3ExecutorPool::_adjustWorkers(task_type_t, unsigned long) build/../kv_engine/engines/ep/src/cb3_executorpool.cc:464:33 (libep.so+0x164031)
           #4 CB3ExecutorPool::_startWorkers() build/../kv_engine/engines/ep/src/cb3_executorpool.cc:528:5 (libep.so+0x1646c2)
           #5 CB3ExecutorPool::_registerTaskable(Taskable&) build/../kv_engine/engines/ep/src/cb3_executorpool.cc:419:5 (libep.so+0x163d76)
           #6 CB3ExecutorPool::registerTaskable(Taskable&) build/../kv_engine/engines/ep/src/cb3_executorpool.cc:424:5 (libep.so+0x163de6)
           #7 KVBucket::KVBucket(EventuallyPersistentEngine&) build/../kv_engine/engines/ep/src/kv_bucket.cc:323:26 (libep.so+0x386e0d)
           #8 EphemeralBucket::EphemeralBucket(EventuallyPersistentEngine&) build/../kv_engine/engines/ep/src/ephemeral_bucket.cc:96:7 (libep.so+0x324cf7)
           #9 std::_MakeUniq<EphemeralBucket>::__single_object std::make_unique<EphemeralBucket, EventuallyPersistentEngine&>(EventuallyPersistentEngine&) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/unique_ptr.h:825:34 (libep.so+0x2eff14)
           #10 EventuallyPersistentEngine::makeBucket(Configuration&) build/../kv_engine/engines/ep/src/ep_engine.cc:6540:16 (libep.so+0x2d92e3)
           #11 EventuallyPersistentEngine::initialize(char const*) build/../kv_engine/engines/ep/src/ep_engine.cc:2248:16 (libep.so+0x2d8d59)
           #12 MockTestHarness::create_bucket(bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) build/../kv_engine/programs/engine_testapp/engine_testapp.cc:212:52 (ep_testsuite_dcp+0x55d1b7)
           #13 execute_test(test, char const*, char const*) build/../kv_engine/programs/engine_testapp/engine_testapp.cc:366:43 (ep_testsuite_dcp+0x55c155)
           #14 main build/../kv_engine/programs/engine_testapp/engine_testapp.cc:629:37 (ep_testsuite_dcp+0x55b5db)
       
       SUMMARY: ThreadSanitizer: data race build/../kv_engine/engines/ep/src/linked_list.cc in BasicLinkedList::purgeTombstones(long, std::function<bool (DocKey const&, long, bool)>, std::function<bool ()>)
       

      Full log: http://cv.jenkins.couchbase.com/job/kv_engine.threadsanitizer/job/master/5891/consoleFull#62744967061882284-c5b1-40af-8076-4f8cb2d12fb1

      Attachments

        Issue Links

          For Gerrit Dashboard: MB-41406
          # Subject Branch Project Status CR V

          Activity

            People

              james.harrison James Harrison (Inactive)
              drigby Dave Rigby (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty