Hello Mike Percy,

I'd like you to do a code review.  Please visit

    http://gerrit.cloudera.org:8080/8092

to review the following change.

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
---
M src/kudu/master/master.cc
1 file changed, 1 insertion(+), 1 deletion(-)


  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/92/8092/1
-- 
To view, visit http://gerrit.cloudera.org:8080/8092
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie6bb7c01afcb0219b93eddec79631768ee352516
Gerrit-PatchSet: 1
Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-Owner: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Mike Percy <mpe...@apache.org>

Reply via email to