Adar Dembo has submitted this change and it was merged.
Change subject: master: fix TSAN data race on ToString()
......................................................................
master: fix TSAN data race on ToString()
WARNING: ThreadSanitizer: data race (pid=14563)
Read of size 4 at 0x7fff3db0f228 by thread T59:
#0 kudu::master::Master::ToString() const
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master.cc:109
(libmaster.so+0xe76bc)
#1 kudu::master::Master::InitCatalogManagerTask()
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master.cc:180
(discriminator 2) (libmaster.so+0xe87b5)
#2 kudu::internal::RunnableAdapter<void
(kudu::master::Master::*)()>::Run(kudu::master::Master*)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/gutil/bind_internal.h:136
(discriminator 3) (libmaster.so+0xec6a6)
#3 kudu::internal::InvokeHelper<false, void,
kudu::internal::RunnableAdapter<void (kudu::master::Master::*)()>, void
(kudu::master::Master*)>::MakeItSo(kudu::internal::RunnableAdapter<void
(kudu::master::Master::*)()>, kudu::master::Master*)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/gutil/bind_internal.h:873
(discriminator 1) (libmaster.so+0xec5c5)
#4 kudu::internal::Invoker<1,
kudu::internal::BindState<kudu::internal::RunnableAdapter<void
(kudu::master::Master::*)()>, void (kudu::master::Master*), void
(kudu::internal::UnretainedWrapper<kudu::master::Master>)>, void
(kudu::master::Master*)>::Run(kudu::internal::BindStateBase*)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/gutil/bind_internal.h:1065
(libmaster.so+0xec50a)
#5 kudu::Callback<void ()>::Run() const
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/gutil/callback.h:396
(discriminator 1) (libconsensus.so+0x9395d)
#6 kudu::ClosureRunnable::Run()
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/util/threadpool.cc:74
(libkudu_util.so+0x1be0ad)
#7 kudu::ThreadPool::DispatchThread(bool)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/util/threadpool.cc:631
(libkudu_util.so+0x1bb3e1)
#8 boost::_mfi::mf1<void, kudu::ThreadPool,
bool>::operator()(kudu::ThreadPool*, bool) const
/home/jenkins-slave/workspace/kudu-master/3/thirdparty/installed/common/include/boost/bind/mem_fn_template.hpp:165
(discriminator 3) (libkudu_util.so+0x1c3c9e)
#9 void boost::_bi::list2<boost::_bi::value<kudu::ThreadPool*>,
boost::_bi::value<bool> >::operator()<boost::_mfi::mf1<void, kudu::ThreadPool,
bool>, boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf1<void,
kudu::ThreadPool, bool>&, boost::_bi::list0&, int)
/home/jenkins-slave/workspace/kudu-master/3/thirdparty/installed/common/include/boost/bind/bind.hpp:319
(discriminator 3) (libkudu_util.so+0x1c3bdd)
#10 boost::_bi::bind_t<void, boost::_mfi::mf1<void, kudu::ThreadPool,
bool>, boost::_bi::list2<boost::_bi::value<kudu::ThreadPool*>,
boost::_bi::value<bool> > >::operator()()
/home/jenkins-slave/workspace/kudu-master/3/thirdparty/installed/common/include/boost/bind/bind.hpp:1222
(libkudu_util.so+0x1c3b43)
#11
boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void,
boost::_mfi::mf1<void, kudu::ThreadPool, bool>,
boost::_bi::list2<boost::_bi::value<kudu::ThreadPool*>, boost::_bi::value<bool>
> >, void>::invoke(boost::detail::function::function_buffer&)
/home/jenkins-slave/workspace/kudu-master/3/thirdparty/installed/common/include/boost/function/function_template.hpp:159
(libkudu_util.so+0x1c38e1)
#12 boost::function0<void>::operator()() const
/home/jenkins-slave/workspace/kudu-master/3/thirdparty/installed/common/include/boost/function/function_template.hpp:770
(discriminator 1) (libkrpc.so+0xb74e1)
#13 kudu::Thread::SuperviseThread(void*)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/util/thread.cc:602
(libkudu_util.so+0x1b268e)
Previous write of size 4 at 0x7fff3db0f228 by main thread:
#0 kudu::master::Master::StartAsync()
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master.cc:172
(libmaster.so+0xe80b6)
#1 kudu::master::Master::Start()
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master.cc:143
(discriminator 1) (libmaster.so+0xe7ce5)
#2 kudu::master::MasterMain(int, char**)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master_main.cc:77
(discriminator 1) (kudu-master+0x4b4d66)
#3 main
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master_main.cc:91
(kudu-master+0x4b49fe)
Location is stack of main thread.
Thread T59 'init [worker]-1' (tid=14675, running) created by main thread at:
#0 pthread_create
/home/jenkins-slave/workspace/kudu-master/3/thirdparty/src/llvm-4.0.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:897
(kudu-master+0x452053)
#1 kudu::Thread::StartThread(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const&, boost::function<void ()> const&, unsigned
long, scoped_refptr<kudu::Thread>*)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/util/thread.cc:525
(discriminator 2) (libkudu_util.so+0x1b1e87)
#2 kudu::Status kudu::Thread::Create<void (kudu::ThreadPool::*)(bool),
kudu::ThreadPool*, bool>(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const&, void (kudu::ThreadPool::* const&)(bool),
kudu::ThreadPool* const&, bool const&, scoped_refptr<kudu::Thread>*)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/util/thread.h:171
(libkudu_util.so+0x1bd026)
#3 kudu::ThreadPool::CreateThreadUnlocked()
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/util/threadpool.cc:696
(discriminator 4) (libkudu_util.so+0x1baa01)
#4 kudu::ThreadPool::DoSubmit(std::__1::shared_ptr<kudu::Runnable>,
kudu::ThreadPoolToken*)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/util/threadpool.cc:493
(libkudu_util.so+0x1b8ec1)
#5 kudu::ThreadPool::Submit(std::__1::shared_ptr<kudu::Runnable>)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/util/threadpool.cc:454
(libkudu_util.so+0x1bad1f)
#6 kudu::ThreadPool::SubmitClosure(kudu::Callback<void ()>)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/util/threadpool.cc:446
(libkudu_util.so+0x1bac59)
#7 kudu::master::Master::StartAsync()
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master.cc:169
(discriminator 4) (libmaster.so+0xe8088)
#8 kudu::master::Master::Start()
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master.cc:143
(discriminator 1) (libmaster.so+0xe7ce5)
#9 kudu::master::MasterMain(int, char**)
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master_main.cc:77
(discriminator 1) (kudu-master+0x4b4d66)
#10 main
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master_main.cc:91
(kudu-master+0x4b49fe)
SUMMARY: ThreadSanitizer: data race
/home/jenkins-slave/workspace/kudu-master/3/src/kudu/master/master.cc:109 in
kudu::master::Master::ToString() const
Change-Id: Ie6bb7c01afcb0219b93eddec79631768ee352516
Reviewed-on: http://gerrit.cloudera.org:8080/8092
Tested-by: Kudu Jenkins
Reviewed-by: David Ribeiro Alves <[email protected]>
---
M src/kudu/master/master.cc
1 file changed, 1 insertion(+), 1 deletion(-)
Approvals:
David Ribeiro Alves: Looks good to me, approved
Kudu Jenkins: Verified
--
To view, visit http://gerrit.cloudera.org:8080/8092
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ie6bb7c01afcb0219b93eddec79631768ee352516
Gerrit-PatchSet: 3
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <[email protected]>
Gerrit-Reviewer: Adar Dembo <[email protected]>
Gerrit-Reviewer: David Ribeiro Alves <[email protected]>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy <[email protected]>