Details
-
Bug
-
Resolution: Duplicate
-
Major
-
5.5.0
-
None
-
Untriaged
-
Unknown
Description
As identified by TSAN in this build, there is a data race when accessing the read and write unique_ptrs.
03:12:39 WARNING: ThreadSanitizer: data race (pid=20440)
|
03:12:39 Read of size 8 at 0x7b6000040000 by thread T6 (mutexes: write M2761, write M2706):
|
03:12:39 #0 std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >::_M_ptr() const /usr/local/include/c++/7.3.0/bits/unique_ptr.h:147 (memcached+0x00000047737f)
|
03:12:39 #1 std::unique_ptr<cb::Pipe, std::default_delete<cb::Pipe> >::get() const /usr/local/include/c++/7.3.0/bits/unique_ptr.h:337 (memcached+0x00000047737f)
|
03:12:39 #2 std::unique_ptr<cb::Pipe, std::default_delete<cb::Pipe> >::operator bool() const /usr/local/include/c++/7.3.0/bits/unique_ptr.h:351 (memcached+0x00000047737f)
|
03:12:39 #3 Connection::toJSON() const /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connection.cc:248 (memcached+0x00000047737f)
|
03:12:39 #4 connection_stats(void (*)(char const*, unsigned short, char const*, unsigned int, gsl::not_null<void const*>), void const*, long) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:255 (memcached+0x00000048b1eb)
|
03:12:39 #5 stat_connections_executor /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/protocol/mcbp/stats_context.cc:628 (memcached+0x0000004f8960)
|
03:12:39 #6 StatsCommandContext::step() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/protocol/mcbp/stats_context.cc:889 (memcached+0x0000004feb3c)
|
03:12:39 #7 SteppableCommandContext::drive() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/protocol/mcbp/steppable_command_context.cc:35 (memcached+0x000000500a72)
|
03:12:39 #8 stat_executor /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/mcbp_executors.cc:199 (memcached+0x0000004a6b9d)
|
03:12:39 #9 std::_Function_handler<void (Cookie&), void (*)(Cookie&)>::_M_invoke(std::_Any_data const&, Cookie&) /usr/local/include/c++/7.3.0/bits/std_function.h:316 (memcached+0x0000004ad6ee)
|
03:12:39 #10 std::function<void (Cookie&)>::operator()(Cookie&) const /usr/local/include/c++/7.3.0/bits/std_function.h:706 (memcached+0x0000004adccf)
|
03:12:39 #11 execute_request_packet /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/mcbp_executors.cc:744 (memcached+0x0000004ac0da)
|
03:12:39 #12 mcbp_execute_packet(Cookie&) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/mcbp_executors.cc:825 (memcached+0x0000004ac2d5)
|
03:12:39 #13 conn_execute /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/statemachine_mcbp.cc:354 (memcached+0x00000050836c)
|
03:12:39 #14 McbpStateMachine::execute() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/statemachine_mcbp.cc:154 (memcached+0x000000508253)
|
03:12:39 #15 Connection::runStateMachinery() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connection.cc:1351 (memcached+0x000000480a7d)
|
03:12:39 #16 Connection::runEventLoop(short) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connection.cc:1406 (memcached+0x000000480c24)
|
03:12:39 #17 run_event_loop(Connection*, short) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:150 (memcached+0x00000048b4b8)
|
03:12:39 #18 event_handler(int, short, void*) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/memcached.cc:946 (memcached+0x000000418e5b)
|
03:12:39 #19 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #20 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #21 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #22 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Previous write of size 8 at 0x7b6000040000 by thread T5 (mutexes: write M2751):
|
03:12:39 #0 std::_Tuple_impl<0ul, cb::Pipe*, std::default_delete<cb::Pipe> >::operator=(std::_Tuple_impl<0ul, cb::Pipe*, std::default_delete<cb::Pipe> >&&) /usr/local/include/c++/7.3.0/tuple:304 (memcached+0x00000048ac8d)
|
03:12:39 #1 std::tuple<cb::Pipe*, std::default_delete<cb::Pipe> >::operator=(std::tuple<cb::Pipe*, std::default_delete<cb::Pipe> >&&) /usr/local/include/c++/7.3.0/tuple:1219 (memcached+0x00000048ac8d)
|
03:12:39 #2 std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >::operator=(std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >&&) /usr/local/include/c++/7.3.0/bits/unique_ptr.h:117 (memcached+0x00000048ac8d)
|
03:12:39 #3 std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> > > >, std::is_move_constructible<std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> > >, std::is_move_assignable<std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> > > >::value, void>::type std::swap<std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> > >(std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >&, std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >&) /usr/local/include/c++/7.3.0/bits/move.h:199 (memcached+0x00000048ac8d)
|
03:12:39 #4 std::unique_ptr<cb::Pipe, std::default_delete<cb::Pipe> >::swap(std::unique_ptr<cb::Pipe, std::default_delete<cb::Pipe> >&) /usr/local/include/c++/7.3.0/bits/unique_ptr.h:384 (memcached+0x00000048ac8d)
|
03:12:39 #5 maybe_return_single_buffer /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:438 (memcached+0x00000048ac8d)
|
03:12:39 #6 conn_return_buffers(Connection*) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:334 (memcached+0x00000048b28a)
|
03:12:39 #7 Connection::runEventLoop(short) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connection.cc:1461 (memcached+0x000000481072)
|
03:12:39 #8 run_event_loop(Connection*, short) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:150 (memcached+0x00000048b4b8)
|
03:12:39 #9 event_handler(int, short, void*) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/memcached.cc:946 (memcached+0x000000418e5b)
|
03:12:39 #10 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #11 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #12 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #13 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Location is heap block of size 952 at 0x7b6000040000 allocated by thread T5:
|
03:12:39 #0 operator new(unsigned long) <null> (libtsan.so.0+0x00000006a4d6)
|
03:12:39 #1 allocate_connection /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:358 (memcached+0x00000048c00c)
|
03:12:39 #2 conn_new(int, unsigned short, event_base*, LIBEVENT_THREAD*) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:182 (memcached+0x00000048c3c5)
|
03:12:39 #3 dispatch_new_connections /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:247 (memcached+0x00000045ad21)
|
03:12:39 #4 thread_libevent_process /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:285 (memcached+0x00000045aefb)
|
03:12:39 #5 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #6 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #7 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #8 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Mutex M2761 (0x7b78000014a8) created at:
|
03:12:39 #0 pthread_mutex_lock <null> (libtsan.so.0+0x00000003876f)
|
03:12:39 #1 __gthread_mutex_lock /usr/local/include/c++/7.3.0/x86_64-pc-linux-gnu/bits/gthr-default.h:748 (memcached+0x00000045afa2)
|
03:12:39 #2 std::mutex::lock() /usr/local/include/c++/7.3.0/bits/std_mutex.h:103 (memcached+0x00000045afa2)
|
03:12:39 #3 std::lock_guard<std::mutex>::lock_guard(std::mutex&) /usr/local/include/c++/7.3.0/bits/std_mutex.h:162 (memcached+0x00000045afa2)
|
03:12:39 #4 thread_libevent_process /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:287 (memcached+0x00000045afa2)
|
03:12:39 #5 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #6 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #7 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #8 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Mutex M2706 (0x0000019b49e0) created at:
|
03:12:39 #0 pthread_mutex_lock <null> (libtsan.so.0+0x00000003876f)
|
03:12:39 #1 __gthread_mutex_lock /usr/local/include/c++/7.3.0/x86_64-pc-linux-gnu/bits/gthr-default.h:748 (memcached+0x00000048c063)
|
03:12:39 #2 std::mutex::lock() /usr/local/include/c++/7.3.0/bits/std_mutex.h:103 (memcached+0x00000048c063)
|
03:12:39 #3 std::lock_guard<std::mutex>::lock_guard(std::mutex&) /usr/local/include/c++/7.3.0/bits/std_mutex.h:162 (memcached+0x00000048c063)
|
03:12:39 #4 allocate_connection /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:359 (memcached+0x00000048c063)
|
03:12:39 #5 conn_new(int, unsigned short, event_base*, LIBEVENT_THREAD*) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:182 (memcached+0x00000048c3c5)
|
03:12:39 #6 dispatch_new_connections /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:247 (memcached+0x00000045ad21)
|
03:12:39 #7 thread_libevent_process /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:285 (memcached+0x00000045aefb)
|
03:12:39 #8 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #9 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #10 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #11 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Mutex M2751 (0x7b7800001220) created at:
|
03:12:39 #0 pthread_mutex_lock <null> (libtsan.so.0+0x00000003876f)
|
03:12:39 #1 __gthread_mutex_lock /usr/local/include/c++/7.3.0/x86_64-pc-linux-gnu/bits/gthr-default.h:748 (memcached+0x00000045afa2)
|
03:12:39 #2 std::mutex::lock() /usr/local/include/c++/7.3.0/bits/std_mutex.h:103 (memcached+0x00000045afa2)
|
03:12:39 #3 std::lock_guard<std::mutex>::lock_guard(std::mutex&) /usr/local/include/c++/7.3.0/bits/std_mutex.h:162 (memcached+0x00000045afa2)
|
03:12:39 #4 thread_libevent_process /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:287 (memcached+0x00000045afa2)
|
03:12:39 #5 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #6 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #7 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #8 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Thread T6 'mc:worker_3' (tid=20448, running) created by main thread at:
|
03:12:39 #0 pthread_create <null> (libtsan.so.0+0x0000000282a0)
|
03:12:39 #1 cb_create_named_thread /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:110 (libplatform_so.so.0.1.0+0x0000000093fe)
|
03:12:39 #2 create_worker /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:90 (memcached+0x00000045b2c2)
|
03:12:39 #3 thread_init(unsigned long, event_base*, void (*)(int, short, void*)) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:448 (memcached+0x00000045be11)
|
03:12:39 #4 memcached_main /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/memcached.cc:2453 (memcached+0x0000004222df)
|
03:12:39 #5 main /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/main.cc:33 (memcached+0x0000004123c5)
|
03:12:39
|
03:12:39 Thread T5 'mc:worker_2' (tid=20447, running) created by main thread at:
|
03:12:39 #0 pthread_create <null> (libtsan.so.0+0x0000000282a0)
|
03:12:39 #1 cb_create_named_thread /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:110 (libplatform_so.so.0.1.0+0x0000000093fe)
|
03:12:39 #2 create_worker /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:90 (memcached+0x00000045b2c2)
|
03:12:39 #3 thread_init(unsigned long, event_base*, void (*)(int, short, void*)) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:448 (memcached+0x00000045be11)
|
03:12:39 #4 memcached_main /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/memcached.cc:2453 (memcached+0x0000004222df)
|
03:12:39 #5 main /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/main.cc:33 (memcached+0x0000004123c5)
|
03:12:39
|
03:12:39 SUMMARY: ThreadSanitizer: data race /usr/local/include/c++/7.3.0/bits/unique_ptr.h:147 in std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >::_M_ptr() const
|
and
03:12:39 WARNING: ThreadSanitizer: data race (pid=20440)
|
03:12:39 Read of size 8 at 0x7b6000040008 by thread T6 (mutexes: write M2761, write M2706):
|
03:12:39 #0 std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >::_M_ptr() const /usr/local/include/c++/7.3.0/bits/unique_ptr.h:147 (memcached+0x000000477497)
|
03:12:39 #1 std::unique_ptr<cb::Pipe, std::default_delete<cb::Pipe> >::get() const /usr/local/include/c++/7.3.0/bits/unique_ptr.h:337 (memcached+0x000000477497)
|
03:12:39 #2 std::unique_ptr<cb::Pipe, std::default_delete<cb::Pipe> >::operator bool() const /usr/local/include/c++/7.3.0/bits/unique_ptr.h:351 (memcached+0x000000477497)
|
03:12:39 #3 Connection::toJSON() const /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connection.cc:252 (memcached+0x000000477497)
|
03:12:39 #4 connection_stats(void (*)(char const*, unsigned short, char const*, unsigned int, gsl::not_null<void const*>), void const*, long) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:255 (memcached+0x00000048b1eb)
|
03:12:39 #5 stat_connections_executor /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/protocol/mcbp/stats_context.cc:628 (memcached+0x0000004f8960)
|
03:12:39 #6 StatsCommandContext::step() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/protocol/mcbp/stats_context.cc:889 (memcached+0x0000004feb3c)
|
03:12:39 #7 SteppableCommandContext::drive() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/protocol/mcbp/steppable_command_context.cc:35 (memcached+0x000000500a72)
|
03:12:39 #8 stat_executor /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/mcbp_executors.cc:199 (memcached+0x0000004a6b9d)
|
03:12:39 #9 std::_Function_handler<void (Cookie&), void (*)(Cookie&)>::_M_invoke(std::_Any_data const&, Cookie&) /usr/local/include/c++/7.3.0/bits/std_function.h:316 (memcached+0x0000004ad6ee)
|
03:12:39 #10 std::function<void (Cookie&)>::operator()(Cookie&) const /usr/local/include/c++/7.3.0/bits/std_function.h:706 (memcached+0x0000004adccf)
|
03:12:39 #11 execute_request_packet /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/mcbp_executors.cc:744 (memcached+0x0000004ac0da)
|
03:12:39 #12 mcbp_execute_packet(Cookie&) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/mcbp_executors.cc:825 (memcached+0x0000004ac2d5)
|
03:12:39 #13 conn_execute /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/statemachine_mcbp.cc:354 (memcached+0x00000050836c)
|
03:12:39 #14 McbpStateMachine::execute() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/statemachine_mcbp.cc:154 (memcached+0x000000508253)
|
03:12:39 #15 Connection::runStateMachinery() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connection.cc:1351 (memcached+0x000000480a7d)
|
03:12:39 #16 Connection::runEventLoop(short) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connection.cc:1406 (memcached+0x000000480c24)
|
03:12:39 #17 run_event_loop(Connection*, short) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:150 (memcached+0x00000048b4b8)
|
03:12:39 #18 event_handler(int, short, void*) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/memcached.cc:946 (memcached+0x000000418e5b)
|
03:12:39 #19 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #20 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #21 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #22 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Previous write of size 8 at 0x7b6000040008 by thread T5 (mutexes: write M2751):
|
03:12:39 #0 std::_Tuple_impl<0ul, cb::Pipe*, std::default_delete<cb::Pipe> >::operator=(std::_Tuple_impl<0ul, cb::Pipe*, std::default_delete<cb::Pipe> >&&) /usr/local/include/c++/7.3.0/tuple:304 (memcached+0x00000048ac8d)
|
03:12:39 #1 std::tuple<cb::Pipe*, std::default_delete<cb::Pipe> >::operator=(std::tuple<cb::Pipe*, std::default_delete<cb::Pipe> >&&) /usr/local/include/c++/7.3.0/tuple:1219 (memcached+0x00000048ac8d)
|
03:12:39 #2 std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >::operator=(std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >&&) /usr/local/include/c++/7.3.0/bits/unique_ptr.h:117 (memcached+0x00000048ac8d)
|
03:12:39 #3 std::enable_if<std::__and_<std::__not_<std::__is_tuple_like<std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> > > >, std::is_move_constructible<std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> > >, std::is_move_assignable<std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> > > >::value, void>::type std::swap<std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> > >(std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >&, std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >&) /usr/local/include/c++/7.3.0/bits/move.h:199 (memcached+0x00000048ac8d)
|
03:12:39 #4 std::unique_ptr<cb::Pipe, std::default_delete<cb::Pipe> >::swap(std::unique_ptr<cb::Pipe, std::default_delete<cb::Pipe> >&) /usr/local/include/c++/7.3.0/bits/unique_ptr.h:384 (memcached+0x00000048ac8d)
|
03:12:39 #5 maybe_return_single_buffer /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:438 (memcached+0x00000048ac8d)
|
03:12:39 #6 conn_return_buffers(Connection*) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:335 (memcached+0x00000048b29d)
|
03:12:39 #7 Connection::runEventLoop(short) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connection.cc:1461 (memcached+0x000000481072)
|
03:12:39 #8 run_event_loop(Connection*, short) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:150 (memcached+0x00000048b4b8)
|
03:12:39 #9 event_handler(int, short, void*) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/memcached.cc:946 (memcached+0x000000418e5b)
|
03:12:39 #10 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #11 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #12 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #13 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Location is heap block of size 952 at 0x7b6000040000 allocated by thread T5:
|
03:12:39 #0 operator new(unsigned long) <null> (libtsan.so.0+0x00000006a4d6)
|
03:12:39 #1 allocate_connection /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:358 (memcached+0x00000048c00c)
|
03:12:39 #2 conn_new(int, unsigned short, event_base*, LIBEVENT_THREAD*) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:182 (memcached+0x00000048c3c5)
|
03:12:39 #3 dispatch_new_connections /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:247 (memcached+0x00000045ad21)
|
03:12:39 #4 thread_libevent_process /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:285 (memcached+0x00000045aefb)
|
03:12:39 #5 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #6 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #7 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #8 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Mutex M2761 (0x7b78000014a8) created at:
|
03:12:39 #0 pthread_mutex_lock <null> (libtsan.so.0+0x00000003876f)
|
03:12:39 #1 __gthread_mutex_lock /usr/local/include/c++/7.3.0/x86_64-pc-linux-gnu/bits/gthr-default.h:748 (memcached+0x00000045afa2)
|
03:12:39 #2 std::mutex::lock() /usr/local/include/c++/7.3.0/bits/std_mutex.h:103 (memcached+0x00000045afa2)
|
03:12:39 #3 std::lock_guard<std::mutex>::lock_guard(std::mutex&) /usr/local/include/c++/7.3.0/bits/std_mutex.h:162 (memcached+0x00000045afa2)
|
03:12:39 #4 thread_libevent_process /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:287 (memcached+0x00000045afa2)
|
03:12:39 #5 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #6 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #7 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #8 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Mutex M2706 (0x0000019b49e0) created at:
|
03:12:39 #0 pthread_mutex_lock <null> (libtsan.so.0+0x00000003876f)
|
03:12:39 #1 __gthread_mutex_lock /usr/local/include/c++/7.3.0/x86_64-pc-linux-gnu/bits/gthr-default.h:748 (memcached+0x00000048c063)
|
03:12:39 #2 std::mutex::lock() /usr/local/include/c++/7.3.0/bits/std_mutex.h:103 (memcached+0x00000048c063)
|
03:12:39 #3 std::lock_guard<std::mutex>::lock_guard(std::mutex&) /usr/local/include/c++/7.3.0/bits/std_mutex.h:162 (memcached+0x00000048c063)
|
03:12:39 #4 allocate_connection /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:359 (memcached+0x00000048c063)
|
03:12:39 #5 conn_new(int, unsigned short, event_base*, LIBEVENT_THREAD*) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/connections.cc:182 (memcached+0x00000048c3c5)
|
03:12:39 #6 dispatch_new_connections /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:247 (memcached+0x00000045ad21)
|
03:12:39 #7 thread_libevent_process /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:285 (memcached+0x00000045aefb)
|
03:12:39 #8 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #9 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #10 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #11 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Mutex M2751 (0x7b7800001220) created at:
|
03:12:39 #0 pthread_mutex_lock <null> (libtsan.so.0+0x00000003876f)
|
03:12:39 #1 __gthread_mutex_lock /usr/local/include/c++/7.3.0/x86_64-pc-linux-gnu/bits/gthr-default.h:748 (memcached+0x00000045afa2)
|
03:12:39 #2 std::mutex::lock() /usr/local/include/c++/7.3.0/bits/std_mutex.h:103 (memcached+0x00000045afa2)
|
03:12:39 #3 std::lock_guard<std::mutex>::lock_guard(std::mutex&) /usr/local/include/c++/7.3.0/bits/std_mutex.h:162 (memcached+0x00000045afa2)
|
03:12:39 #4 thread_libevent_process /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:287 (memcached+0x00000045afa2)
|
03:12:39 #5 event_process_active_single_queue.isra.26 <null> (libevent_core.so.2.1.8+0x00000001aa23)
|
03:12:39 #6 CouchbaseThread::run() /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:59 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #7 platform_thread_wrap /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:72 (libplatform_so.so.0.1.0+0x000000009655)
|
03:12:39 #8 <null> <null> (libtsan.so.0+0x000000024feb)
|
03:12:39
|
03:12:39 Thread T6 'mc:worker_3' (tid=20448, running) created by main thread at:
|
03:12:39 #0 pthread_create <null> (libtsan.so.0+0x0000000282a0)
|
03:12:39 #1 cb_create_named_thread /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:110 (libplatform_so.so.0.1.0+0x0000000093fe)
|
03:12:39 #2 create_worker /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:90 (memcached+0x00000045b2c2)
|
03:12:39 #3 thread_init(unsigned long, event_base*, void (*)(int, short, void*)) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:448 (memcached+0x00000045be11)
|
03:12:39 #4 memcached_main /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/memcached.cc:2453 (memcached+0x0000004222df)
|
03:12:39 #5 main /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/main.cc:33 (memcached+0x0000004123c5)
|
03:12:39
|
03:12:39 Thread T5 'mc:worker_2' (tid=20447, running) created by main thread at:
|
03:12:39 #0 pthread_create <null> (libtsan.so.0+0x0000000282a0)
|
03:12:39 #1 cb_create_named_thread /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/platform/src/cb_pthreads.cc:110 (libplatform_so.so.0.1.0+0x0000000093fe)
|
03:12:39 #2 create_worker /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:90 (memcached+0x00000045b2c2)
|
03:12:39 #3 thread_init(unsigned long, event_base*, void (*)(int, short, void*)) /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/thread.cc:448 (memcached+0x00000045be11)
|
03:12:39 #4 memcached_main /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/memcached.cc:2453 (memcached+0x0000004222df)
|
03:12:39 #5 main /home/couchbase/jenkins/workspace/kv_engine-threadsanitizer-master-gcc7/kv_engine/daemon/main.cc:33 (memcached+0x0000004123c5)
|
03:12:39
|
03:12:39 SUMMARY: ThreadSanitizer: data race /usr/local/include/c++/7.3.0/bits/unique_ptr.h:147 in std::__uniq_ptr_impl<cb::Pipe, std::default_delete<cb::Pipe> >::_M_ptr() const
|
The code block in question is this:
connection.cc |
if (read) {
|
cJSON_AddItemToObject(obj, "read", read->to_json().release());
|
}
|
|
if (write) {
|
cJSON_AddItemToObject(obj, "write", write->to_json().release());
|
}
|
Attachments
Issue Links
- relates to
-
MB-29108 connection_stats is not thread safe
- Closed