Details
-
Task
-
Resolution: Fixed
-
Major
-
master
Description
As seen during CV testing for http://review.couchbase.org/c/kv_engine/+/155827:
[ OK ] HelloTest.Collections (3 ms)
|
==================
|
WARNING: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) (pid=110348)
|
Write of size 8 at 0x7b4000001b00 by main thread:
|
#0 ProcessMonitorImpl::~ProcessMonitorImpl() ../platform/src/process_monitor.cc:93 (memcached_testapp+0x90b3c6)
|
#1 ChildProcessMonitor::~ChildProcessMonitor() ../platform/src/process_monitor.cc:268 (memcached_testapp+0x907965)
|
#2 std::default_delete<ProcessMonitor>::operator()(ProcessMonitor*) const /opt/gcc-10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/unique_ptr.h:85 (memcached_testapp+0x6fd493)
|
#3 std::__uniq_ptr_impl<ProcessMonitor, std::default_delete<ProcessMonitor> >::reset(ProcessMonitor*) /opt/gcc-10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/unique_ptr.h:182 (memcached_testapp+0x6fd38b)
|
#4 std::unique_ptr<ProcessMonitor, std::default_delete<ProcessMonitor> >::reset(ProcessMonitor*) /opt/gcc-10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/unique_ptr.h:456 (memcached_testapp+0x6f41a8)
|
#5 TestappTest::stop_memcached_server() /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:777 (memcached_testapp+0x6d23e2)
|
#6 TestappTest::TearDownTestCase() /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:161 (memcached_testapp+0x6d230c)
|
#7 testing::TestSuite::RunTearDownTestSuite() ../third_party/googletest/googletest/include/gtest/gtest.h:955 (memcached_testapp+0x932361)
|
#8 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::TestSuite, void>(testing::TestSuite*, void (testing::TestSuite::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2433 (memcached_testapp+0x948783)
|
#9 void testing::internal::HandleExceptionsInMethodIfSupported<testing::TestSuite, void>(testing::TestSuite*, void (testing::TestSuite::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2469 (memcached_testapp+0x9321c2)
|
#10 testing::TestSuite::Run() ../third_party/googletest/googletest/src/gtest.cc:2821 (memcached_testapp+0x91aa8c)
|
#11 testing::internal::UnitTestImpl::RunAllTests() ../third_party/googletest/googletest/src/gtest.cc:5338 (memcached_testapp+0x923bc1)
|
#12 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2433 (memcached_testapp+0x94a2c3)
|
#13 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2469 (memcached_testapp+0x9338a2)
|
#14 testing::UnitTest::Run() ../third_party/googletest/googletest/src/gtest.cc:4925 (memcached_testapp+0x923777)
|
#15 RUN_ALL_TESTS() ../third_party/googletest/googletest/include/gtest/gtest.h:2473 (memcached_testapp+0x6f4d27)
|
#16 main /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:1283 (memcached_testapp+0x6d7d3c)
|
|
Previous read of size 8 at 0x7b4000001b00 by thread T1 (mutexes: write M143687752930565024):
|
#0 ProcessMonitorImpl::start()::{lambda()#1}::operator()() const ../platform/src/process_monitor.cc:201 (memcached_testapp+0x906cfc)
|
#1 void std::__invoke_impl<void, ProcessMonitorImpl::start()::{lambda()#1}>(std::__invoke_other, ProcessMonitorImpl::start()::{lambda()#1}&&) /opt/gcc-10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/invoke.h:60 (memcached_testapp+0x906bcd)
|
#2 std::__invoke_result<ProcessMonitorImpl::start()::{lambda()#1}>::type std::__invoke<ProcessMonitorImpl::start()::{lambda()#1}>(std::__invoke_result&&, (ProcessMonitorImpl::start()::{lambda()#1}&&)...) /opt/gcc-10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/invoke.h:95 (memcached_testapp+0x906b3d)
|
#3 void std::thread::_Invoker<std::tuple<ProcessMonitorImpl::start()::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) /opt/gcc-10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/thread:264 (memcached_testapp+0x906b05)
|
#4 std::thread::_Invoker<std::tuple<ProcessMonitorImpl::start()::{lambda()#1}> >::operator()() /opt/gcc-10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/thread:271 (memcached_testapp+0x906ac5)
|
#5 std::thread::_State_impl<std::thread::_Invoker<std::tuple<ProcessMonitorImpl::start()::{lambda()#1}> > >::_M_run() /opt/gcc-10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/thread:215 (memcached_testapp+0x9069f9)
|
#6 execute_native_thread_routine /tmp/deploy/objdir/../gcc-10.2.0/libstdc++-v3/src/c++11/thread.cc:80 (libstdc++.so.6+0xd62ef)
|
|
Location is heap block of size 248 at 0x7b4000001b00 allocated by main thread:
|
#0 operator new(unsigned long) <null> (libtsan.so.0+0x87c5c)
|
#1 std::_MakeUniq<ChildProcessMonitor>::__single_object std::make_unique<ChildProcessMonitor, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (ProcessMonitor::ExitCode const&)>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (ProcessMonitor::ExitCode const&)>&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) /opt/gcc-10.2.0/lib/gcc/x86_64-pc-linux-gnu/10.2.0/../../../../include/c++/10.2.0/bits/unique_ptr.h:962 (memcached_testapp+0x9063dd)
|
#2 ProcessMonitor::create(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (ProcessMonitor::ExitCode const&)>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ../platform/src/process_monitor.cc:456 (memcached_testapp+0x9061d6)
|
#3 TestappTest::start_external_server() /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:512 (memcached_testapp+0x6d4790)
|
#4 TestappTest::start_memcached_server() /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:671 (memcached_testapp+0x6d2245)
|
#5 TestappTest::SetUpTestCase() /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:137 (memcached_testapp+0x6cf349)
|
#6 testing::TestSuite::RunSetUpTestSuite() ../third_party/googletest/googletest/include/gtest/gtest.h:947 (memcached_testapp+0x932321)
|
#7 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::TestSuite, void>(testing::TestSuite*, void (testing::TestSuite::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2433 (memcached_testapp+0x948783)
|
#8 void testing::internal::HandleExceptionsInMethodIfSupported<testing::TestSuite, void>(testing::TestSuite*, void (testing::TestSuite::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2469 (memcached_testapp+0x9321c2)
|
#9 testing::TestSuite::Run() ../third_party/googletest/googletest/src/gtest.cc:2811 (memcached_testapp+0x91a9e3)
|
#10 testing::internal::UnitTestImpl::RunAllTests() ../third_party/googletest/googletest/src/gtest.cc:5338 (memcached_testapp+0x923bc1)
|
#11 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2433 (memcached_testapp+0x94a2c3)
|
#12 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2469 (memcached_testapp+0x9338a2)
|
#13 testing::UnitTest::Run() ../third_party/googletest/googletest/src/gtest.cc:4925 (memcached_testapp+0x923777)
|
#14 RUN_ALL_TESTS() ../third_party/googletest/googletest/include/gtest/gtest.h:2473 (memcached_testapp+0x6f4d27)
|
#15 main /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:1283 (memcached_testapp+0x6d7d3c)
|
|
Mutex M143687752930565024 is already destroyed.
|
|
Thread T1 'procmon' (tid=110358, running) created by main thread at:
|
#0 pthread_create <null> (libtsan.so.0+0x5be62)
|
#1 __gthread_create /tmp/deploy/objdir/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663 (libstdc++.so.6+0xd6564)
|
#2 std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) /tmp/deploy/objdir/../gcc-10.2.0/libstdc++-v3/src/c++11/thread.cc:135 (libstdc++.so.6+0xd6564)
|
#3 ProcessMonitorImpl::start() ../platform/src/process_monitor.cc:180 (memcached_testapp+0x9064f7)
|
#4 ProcessMonitor::create(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::function<void (ProcessMonitor::ExitCode const&)>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ../platform/src/process_monitor.cc:458 (memcached_testapp+0x9061e6)
|
#5 TestappTest::start_external_server() /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:512 (memcached_testapp+0x6d4790)
|
#6 TestappTest::start_memcached_server() /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:671 (memcached_testapp+0x6d2245)
|
#7 TestappTest::SetUpTestCase() /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:137 (memcached_testapp+0x6cf349)
|
#8 testing::TestSuite::RunSetUpTestSuite() ../third_party/googletest/googletest/include/gtest/gtest.h:947 (memcached_testapp+0x932321)
|
#9 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::TestSuite, void>(testing::TestSuite*, void (testing::TestSuite::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2433 (memcached_testapp+0x948783)
|
#10 void testing::internal::HandleExceptionsInMethodIfSupported<testing::TestSuite, void>(testing::TestSuite*, void (testing::TestSuite::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2469 (memcached_testapp+0x9321c2)
|
#11 testing::TestSuite::Run() ../third_party/googletest/googletest/src/gtest.cc:2811 (memcached_testapp+0x91a9e3)
|
#12 testing::internal::UnitTestImpl::RunAllTests() ../third_party/googletest/googletest/src/gtest.cc:5338 (memcached_testapp+0x923bc1)
|
#13 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2433 (memcached_testapp+0x94a2c3)
|
#14 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) ../third_party/googletest/googletest/src/gtest.cc:2469 (memcached_testapp+0x9338a2)
|
#15 testing::UnitTest::Run() ../third_party/googletest/googletest/src/gtest.cc:4925 (memcached_testapp+0x923777)
|
#16 RUN_ALL_TESTS() ../third_party/googletest/googletest/include/gtest/gtest.h:2473 (memcached_testapp+0x6f4d27)
|
#17 main /home/couchbase/jenkins/workspace/kv_engine.threadsanitizer_master/kv_engine/tests/testapp/testapp.cc:1283 (memcached_testapp+0x6d7d3c)
|
|
SUMMARY: ThreadSanitizer: data race on vptr (ctor/dtor vs virtual call) ../platform/src/process_monitor.cc:93 in ProcessMonitorImpl::~ProcessMonitorImpl()
|
==================
|