Details
-
Bug
-
Resolution: Fixed
-
Critical
-
Cheshire-Cat
-
Triaged
-
1
-
Yes
-
KV-Engine 2021-Jan
Description
As seen in local cluster_run testing with ThreadSanitizer enabled on Ubuntu18.04 + clang 9:
==================
|
WARNING: ThreadSanitizer: data race (pid=56295)
|
Write of size 8 at 0x7b54000005f8 by main thread:
|
#0 pthread_cond_destroy <null> (libtsan.so.0+0x00000002bdde)
|
#1 ~ExternalAuthManagerThread /home/couchbase/server/kv_engine/daemon/external_auth_manager_thread.h:43 (memcached+0x000000528e17)
|
#2 ~ExternalAuthManagerThread /home/couchbase/server/kv_engine/daemon/external_auth_manager_thread.h:43 (memcached+0x000000528ef5)
|
#3 std::default_delete<ExternalAuthManagerThread>::operator()(ExternalAuthManagerThread*) const /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/unique_ptr.h:78 (memcached+0x0000005288a1)
|
#4 ~unique_ptr /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/unique_ptr.h:263 (memcached+0x0000005288a1)
|
#5 <null> <null> (libtsan.so.0+0x000000027ed3)
|
#6 prometheus_init() /home/couchbase/server/kv_engine/daemon/memcached.cc:266 (memcached+0x00000046cbfd)
|
#7 memcached_main(int, char**) /home/couchbase/server/kv_engine/daemon/memcached.cc:1470 (memcached+0x00000046cbfd)
|
#8 main /home/couchbase/server/kv_engine/daemon/main.cc:36 (memcached+0x0000004659a0)
|
|
Previous read of size 8 at 0x7b54000005f8 by thread T4 (mutexes: write M802057809356129744):
|
#0 pthread_cond_timedwait <null> (libtsan.so.0+0x000000049a5b)
|
#1 __gthread_cond_timedwait(pthread_cond_t*, pthread_mutex_t*, timespec const*) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/x86_64-linux-gnu/c++/7.5.0/bits/gthr-default.h:871 (memcached+0x000000525792)
|
#2 std::cv_status std::condition_variable::__wait_until_impl<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/condition_variable:178 (memcached+0x000000525792)
|
#3 std::cv_status std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<1l, 1000000000l> > >(std::unique_lock<std::mutex>&, std::chrono::time_point<std::chrono::_V2::system_clock, std::chrono::duration<long, std::ratio<1l, 1000000000l> > > const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/condition_variable:106 (memcached+0x000000525792)
|
#4 std::cv_status std::condition_variable::wait_for<long, std::ratio<1l, 1000000000l> >(std::unique_lock<std::mutex>&, std::chrono::duration<long, std::ratio<1l, 1000000000l> > const&) /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/condition_variable:143 (memcached+0x000000525792)
|
#5 ExternalAuthManagerThread::run() /home/couchbase/server/kv_engine/daemon/external_auth_manager_thread.cc:229 (memcached+0x000000525792)
|
#6 Couchbase::Thread::thread_entry() /home/couchbase/server/platform/src/thread.cc:45 (libplatform_so.so.0.1.0+0x00000001fd92)
|
#7 Couchbase::StartThreadDelegator::run(Couchbase::Thread&) /home/couchbase/server/platform/src/thread.cc:59 (libplatform_so.so.0.1.0+0x000000020055)
|
#8 task_thread_main(void*) /home/couchbase/server/platform/src/thread.cc:65 (libplatform_so.so.0.1.0+0x000000020055)
|
#9 CouchbaseThread::run() /home/couchbase/server/platform/src/cb_pthreads.cc:58 (libplatform_so.so.0.1.0+0x00000000e646)
|
#10 platform_thread_wrap(void*) /home/couchbase/server/platform/src/cb_pthreads.cc:71 (libplatform_so.so.0.1.0+0x00000000e646)
|
#11 <null> <null> (libtsan.so.0+0x00000002843b)
|
|
Location is heap block of size 624 at 0x7b5400000500 allocated by main thread:
|
#0 operator new(unsigned long) <null> (libtsan.so.0+0x00000006d926)
|
#1 std::_MakeUniq<ExternalAuthManagerThread>::__single_object std::make_unique<ExternalAuthManagerThread>() /usr/bin/../lib/gcc/x86_64-linux-gnu/7.5.0/../../../../include/c++/7.5.0/bits/unique_ptr.h:821 (memcached+0x00000046c87b)
|
#2 memcached_main(int, char**) /home/couchbase/server/kv_engine/daemon/memcached.cc:1436 (memcached+0x00000046c87b)
|
#3 main /home/couchbase/server/kv_engine/daemon/main.cc:36 (memcached+0x0000004659a0)
|
|
Mutex M802057809356129744 is already destroyed.
|
|
Thread T4 'mcd:ext_auth' (tid=56327, running) created by main thread at:
|
#0 pthread_create <null> (libtsan.so.0+0x00000002b6f0)
|
#1 cb_create_named_thread(unsigned long*, void (*)(void*), void*, int, char const*) /home/couchbase/server/platform/src/cb_pthreads.cc:109 (libplatform_so.so.0.1.0+0x00000000e526)
|
#2 Couchbase::Thread::start() /home/couchbase/server/platform/src/thread.cc:72 (libplatform_so.so.0.1.0+0x00000001ff0f)
|
#3 memcached_main(int, char**) /home/couchbase/server/kv_engine/daemon/memcached.cc:1439 (memcached+0x00000046c92c)
|
#4 main /home/couchbase/server/kv_engine/daemon/main.cc:36 (memcached+0x0000004659a0)
|
|
SUMMARY: ThreadSanitizer: data race (/home/couchbase/server/install/bin/../lib/libtsan.so.0+0x2bdde) in pthread_cond_destroy
|
kv_engine SHA: c85254b2e67328853b624dc30b48c9ff1de189a9
Attachments
Issue Links
- relates to
-
MB-42742 ThreadSanitizer: destroy of a locked mutex in prometheus_init
- Closed