[ 
https://issues.apache.org/jira/browse/IMPALA-9315?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sahil Takiar resolved IMPALA-9315.
----------------------------------
    Resolution: Not A Problem

Fixed after adding the {{-DDYNAMIC_ANNOTATIONS_ENABLED}} to the 
{{CMAKE_CXX_FLAGS}} in {{be/CMakeLists.txt}}. Credit to Tim for helping me with 
this.

> TSAN data race in kudu::ScopedWatchKernelStack / KernelStackWatchdog
> --------------------------------------------------------------------
>
>                 Key: IMPALA-9315
>                 URL: https://issues.apache.org/jira/browse/IMPALA-9315
>             Project: IMPALA
>          Issue Type: Sub-task
>            Reporter: Sahil Takiar
>            Priority: Major
>
> Several backend tests fail with this data race:
> {code}
> WARNING: ThreadSanitizer: data race (pid=8072)
>   Atomic write of size 4 at 0x7b340006f5c4 by main thread:
>     #0 __tsan_atomic32_store 
> /mnt/source/llvm/llvm-5.0.1.src-p1/projects/compiler-rt/lib/tsan/rtl/tsan_interface_atomic.cc:562
>  (llvm-codegen-test+0x18c004e)
>     #1 base::subtle::Acquire_Store(int volatile*, int) 
> /home/systest/Impala/be/src/gutil/atomicops-internals-tsan.h:104:3 
> (llvm-codegen-test+0x19cd822)
>     #2 kudu::ScopedWatchKernelStack::ScopedWatchKernelStack(char const*, int) 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.h:259:5 
> (llvm-codegen-test+0x19c9920)
>     #3 kudu::Thread::StartThread(std::string const&, std::string const&, 
> boost::function<void ()> const&, unsigned long, scoped_refptr<kudu::Thread>*) 
> /home/systest/Impala/be/src/kudu/util/thread.cc:555:28 
> (llvm-codegen-test+0x19c7129)
>     #4 kudu::Status kudu::Thread::Create<void 
> (kudu::rpc::ReactorThread::*)(), kudu::rpc::ReactorThread*>(std::string 
> const&, std::string const&, void (kudu::rpc::ReactorThread::* const&)(), 
> kudu::rpc::ReactorThread* const&, scoped_refptr<kudu::Thread>*) 
> /home/systest/I
> mpala/be/src/kudu/util/thread.h:164:12 (llvm-codegen-test+0x26e1875)
>     #5 kudu::rpc::ReactorThread::Init() 
> /home/systest/Impala/be/src/kudu/rpc/reactor.cc:185:10 
> (llvm-codegen-test+0x26dc126)
>     #6 kudu::rpc::Reactor::Init() 
> /home/systest/Impala/be/src/kudu/rpc/reactor.cc:759:18 
> (llvm-codegen-test+0x26e06d1)
>     #7 kudu::rpc::Messenger::Init() 
> /home/systest/Impala/be/src/kudu/rpc/messenger.cc:446:41 
> (llvm-codegen-test+0x26c9a8d)
>     #8 
> kudu::rpc::MessengerBuilder::Build(std::shared_ptr<kudu::rpc::Messenger>*) 
> /home/systest/Impala/be/src/kudu/rpc/messenger.cc:205:46 
> (llvm-codegen-test+0x26c95fe)
>     #9 impala::RpcMgr::Init(impala::TNetworkAddress const&) 
> /home/systest/Impala/be/src/rpc/rpc-mgr.cc:151:38 
> (llvm-codegen-test+0x2722a62)
>     #10 impala::TestEnv::Init() 
> /home/systest/Impala/be/src/runtime/test-env.cc:82:64 
> (llvm-codegen-test+0x1b3df91)
>     #11 impala::LlvmCodeGenTest::SetUp() 
> /home/systest/Impala/be/src/codegen/llvm-codegen-test.cc:49:46 
> (llvm-codegen-test+0x1913e02)
>     #12 void 
> testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, 
> void>(testing::Test*, void (testing::Test::*)(), char const*) <null> 
> (llvm-codegen-test+0x412afd2)
>     #13 __libc_start_main 
> /build/glibc-LK5gWL/glibc-2.23/csu/../csu/libc-start.c:291 (libc.so.6+0x2082f)
>   Previous read of size 8 at 0x7b340006f5c0 by thread T188 (mutexes: write 
> M3832):
>     #0 memcpy 
> /mnt/source/llvm/llvm-5.0.1.src-p1/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:738
>  (llvm-codegen-test+0x18a3ad7)
>     #1 
> kudu::KernelStackWatchdog::TLS::Data::SnapshotCopy(kudu::KernelStackWatchdog::TLS::Data*)
>  const /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.cc:246:5 
> (llvm-codegen-test+0x19ed2f3)
>     #2 kudu::KernelStackWatchdog::RunThread() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.cc:172:12 
> (llvm-codegen-test+0x19ec7c3)
>     #3 boost::_mfi::mf0<void, 
> kudu::KernelStackWatchdog>::operator()(kudu::KernelStackWatchdog*) const 
> /home/systest/Impala/toolchain/boost-1.57.0-p3/include/boost/bind/mem_fn_template.hpp:49:16
>  (llvm-codegen-test+0x19f0676)
>     #4 void boost::_bi::list1<boost::_bi::value<kudu::KernelStackWatchdog*> 
> >::operator()<boost::_mfi::mf0<void, kudu::KernelStackWatchdog>, 
> boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, 
> kudu::KernelStackWatchdog>&, boost::_bi::list0&, int) /home/sys
> test/Impala/toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:253:9 
> (llvm-codegen-test+0x19f05ca)
>     #5 boost::_bi::bind_t<void, boost::_mfi::mf0<void, 
> kudu::KernelStackWatchdog>, 
> boost::_bi::list1<boost::_bi::value<kudu::KernelStackWatchdog*> > 
> >::operator()() 
> /home/systest/Impala/toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:16
>  (llvm-codegen-t
> est+0x19f0533)
>     #6 
> boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
> boost::_mfi::mf0<void, kudu::KernelStackWatchdog>, 
> boost::_bi::list1<boost::_bi::value<kudu::KernelStackWatchdog*> > >, 
> void>::invoke(boost::detail::function::function_buffer&) /home/sys
> test/Impala/toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153:11
>  (llvm-codegen-test+0x19f0329)
>     #7 boost::function0<void>::operator()() const 
> /home/systest/Impala/toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:766:14
>  (llvm-codegen-test+0x19c9e41)
>     #8 kudu::Thread::SuperviseThread(void*) 
> /home/systest/Impala/be/src/kudu/util/thread.cc:603:3 
> (llvm-codegen-test+0x19c76e9)
>   Location is heap block of size 200 at 0x7b340006f500 allocated by main 
> thread:
>     #0 operator new(unsigned long) 
> /mnt/source/llvm/llvm-5.0.1.src-p1/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:44
>  (llvm-codegen-test+0x1907103)
>     #1 kudu::KernelStackWatchdog::CreateAndRegisterTLS() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.cc:218:15 
> (llvm-codegen-test+0x19ed3a7)
>     #2 kudu::KernelStackWatchdog::GetTLS() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.h:170:7 
> (llvm-codegen-test+0x19cd7e1)
>     #3 kudu::ScopedWatchKernelStack::ScopedWatchKernelStack(char const*, int) 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.h:248:13 
> (llvm-codegen-test+0x19c99f8)
>     #4 kudu::Thread::StartThread(std::string const&, std::string const&, 
> boost::function<void ()> const&, unsigned long, scoped_refptr<kudu::Thread>*) 
> /home/systest/Impala/be/src/kudu/util/thread.cc:555:28 
> (llvm-codegen-test+0x19c7129)
>     #5 kudu::Status kudu::Thread::Create<void 
> (kudu::rpc::ReactorThread::*)(), kudu::rpc::ReactorThread*>(std::string 
> const&, std::string const&, void (kudu::rpc::ReactorThread::* const&)(), 
> kudu::rpc::ReactorThread* const&, scoped_refptr<kudu::Thread>*) 
> /home/systest/I
> mpala/be/src/kudu/util/thread.h:164:12 (llvm-codegen-test+0x26e1875)
>     #6 kudu::rpc::ReactorThread::Init() 
> /home/systest/Impala/be/src/kudu/rpc/reactor.cc:185:10 
> (llvm-codegen-test+0x26dc126)
>     #7 kudu::rpc::Reactor::Init() 
> /home/systest/Impala/be/src/kudu/rpc/reactor.cc:759:18 
> (llvm-codegen-test+0x26e06d1)
>     #8 kudu::rpc::Messenger::Init() 
> /home/systest/Impala/be/src/kudu/rpc/messenger.cc:446:41 
> (llvm-codegen-test+0x26c9a8d)
>     #9 
> kudu::rpc::MessengerBuilder::Build(std::shared_ptr<kudu::rpc::Messenger>*) 
> /home/systest/Impala/be/src/kudu/rpc/messenger.cc:205:46 
> (llvm-codegen-test+0x26c95fe)
>     #10 impala::RpcMgr::Init(impala::TNetworkAddress const&) 
> /home/systest/Impala/be/src/rpc/rpc-mgr.cc:151:38 
> (llvm-codegen-test+0x2722a62)
>     #11 impala::TestEnv::Init() 
> /home/systest/Impala/be/src/runtime/test-env.cc:82:64 
> (llvm-codegen-test+0x1b3df91)
>     #12 impala::LlvmCodeGenTest::SetUp() 
> /home/systest/Impala/be/src/codegen/llvm-codegen-test.cc:49:46 
> (llvm-codegen-test+0x1913e02)
>     #13 void 
> testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, 
> void>(testing::Test*, void (testing::Test::*)(), char const*) <null> 
> (llvm-codegen-test+0x412afd2)
>     #14 __libc_start_main 
> /build/glibc-LK5gWL/glibc-2.23/csu/../csu/libc-start.c:291 (libc.so.6+0x2082f)
>   Mutex M3832 (0x7b4400100460) created at:
>     #0 pthread_mutex_init 
> /mnt/source/llvm/llvm-5.0.1.src-p1/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:1105
>  (llvm-codegen-test+0x189e564)
>     #1 kudu::Mutex::Mutex() 
> /home/systest/Impala/be/src/kudu/util/mutex.cc:65:8 
> (llvm-codegen-test+0x1a15e1f)
>     #2 kudu::KernelStackWatchdog::KernelStackWatchdog() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.cc:64:22 
> (llvm-codegen-test+0x19ec3c9)
>     #3 Singleton<kudu::KernelStackWatchdog>::CreateInstance() 
> /home/systest/Impala/be/src/kudu/gutil/singleton.h:124:18 
> (llvm-codegen-test+0x19ef744)
>     #4 Singleton<kudu::KernelStackWatchdog>::Init() 
> /home/systest/Impala/be/src/kudu/gutil/singleton.h:117:17 
> (llvm-codegen-test+0x19ef6e4)
>     #5 GoogleOnceInternalInit(int*, void (*)(), void (*)(void*), void*) 
> /home/systest/Impala/be/src/gutil/once.cc:38:7 (llvm-codegen-test+0x4005393)
>     #6 GoogleOnceInit(GoogleOnceType*, void (*)()) 
> /home/systest/Impala/be/src/kudu/gutil/once.h:55:5 
> (llvm-codegen-test+0x19c8ecd)
>     #7 Singleton<kudu::KernelStackWatchdog>::get() 
> /home/systest/Impala/be/src/kudu/gutil/singleton.h:79:5 
> (llvm-codegen-test+0x19ef691)
>     #8 kudu::KernelStackWatchdog::GetInstance() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.h:87:12 
> (llvm-codegen-test+0x19ee073)
>     #9 kudu::KernelStackWatchdog::CreateAndRegisterTLS() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.cc:219:3 
> (llvm-codegen-test+0x19ed3b7)
>     #10 kudu::KernelStackWatchdog::GetTLS() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.h:170:7 
> (llvm-codegen-test+0x19cd7e1)
>     #11 kudu::ScopedWatchKernelStack::ScopedWatchKernelStack(char const*, 
> int) /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.h:248:13 
> (llvm-codegen-test+0x19c99f8)
>     #12 kudu::Thread::StartThread(std::string const&, std::string const&, 
> boost::function<void ()> const&, unsigned long, scoped_refptr<kudu::Thread>*) 
> /home/systest/Impala/be/src/kudu/util/thread.cc:555:28 
> (llvm-codegen-test+0x19c7129)
>     #13 kudu::Status kudu::Thread::Create<void 
> (kudu::rpc::ReactorThread::*)(), kudu::rpc::ReactorThread*>(std::string 
> const&, std::string const&, void (kudu::rpc::ReactorThread::* const&)(), 
> kudu::rpc::ReactorThread* const&, scoped_refptr<kudu::Thread>*) /home/systest/
> Impala/be/src/kudu/util/thread.h:164:12 (llvm-codegen-test+0x26e1875)
>     #14 kudu::rpc::ReactorThread::Init() 
> /home/systest/Impala/be/src/kudu/rpc/reactor.cc:185:10 
> (llvm-codegen-test+0x26dc126)
>     #15 kudu::rpc::Reactor::Init() 
> /home/systest/Impala/be/src/kudu/rpc/reactor.cc:759:18 
> (llvm-codegen-test+0x26e06d1)
>     #16 kudu::rpc::Messenger::Init() 
> /home/systest/Impala/be/src/kudu/rpc/messenger.cc:446:41 
> (llvm-codegen-test+0x26c9a8d)
>     #17 
> kudu::rpc::MessengerBuilder::Build(std::shared_ptr<kudu::rpc::Messenger>*) 
> /home/systest/Impala/be/src/kudu/rpc/messenger.cc:205:46 
> (llvm-codegen-test+0x26c95fe)
>     #18 impala::RpcMgr::Init(impala::TNetworkAddress const&) 
> /home/systest/Impala/be/src/rpc/rpc-mgr.cc:151:38 
> (llvm-codegen-test+0x2722a62)
>     #19 impala::TestEnv::Init() 
> /home/systest/Impala/be/src/runtime/test-env.cc:82:64 
> (llvm-codegen-test+0x1b3df91)
>     #20 impala::LlvmCodeGenTest::SetUp() 
> /home/systest/Impala/be/src/codegen/llvm-codegen-test.cc:49:46 
> (llvm-codegen-test+0x1913e02)
>     #21 void 
> testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, 
> void>(testing::Test*, void (testing::Test::*)(), char const*) <null> 
> (llvm-codegen-test+0x412afd2)
>     #22 __libc_start_main 
> /build/glibc-LK5gWL/glibc-2.23/csu/../csu/libc-start.c:291 (libc.so.6+0x2082f)
>   Thread T188 'kernel-watcher-' (tid=8413, running) created by main thread at:
>     #0 pthread_create 
> /mnt/source/llvm/llvm-5.0.1.src-p1/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:889
>  (llvm-codegen-test+0x189ea9b)
>     #1 kudu::Thread::StartThread(std::string const&, std::string const&, 
> boost::function<void ()> const&, unsigned long, scoped_refptr<kudu::Thread>*) 
> /home/systest/Impala/be/src/kudu/util/thread.cc:556:15 
> (llvm-codegen-test+0x19c7155)
>     #2 kudu::Status kudu::Thread::CreateWithFlags<boost::_bi::bind_t<void, 
> boost::_mfi::mf0<void, kudu::KernelStackWatchdog>, 
> boost::_bi::list1<boost::_bi::value<kudu::KernelStackWatchdog*> > > 
> >(std::string const&, std::string const&, boost::_bi::bind_t<void, boost::_m
> fi::mf0<void, kudu::KernelStackWatchdog>, 
> boost::_bi::list1<boost::_bi::value<kudu::KernelStackWatchdog*> > > const&, 
> unsigned long, scoped_refptr<kudu::Thread>*) 
> /home/systest/Impala/be/src/kudu/util/thread.h:152:12 
> (llvm-codegen-test+0x19ed771)
>     #3 kudu::KernelStackWatchdog::KernelStackWatchdog() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.cc:71:36 
> (llvm-codegen-test+0x19ec45d)
>     #4 Singleton<kudu::KernelStackWatchdog>::CreateInstance() 
> /home/systest/Impala/be/src/kudu/gutil/singleton.h:124:18 
> (llvm-codegen-test+0x19ef744)
>     #5 Singleton<kudu::KernelStackWatchdog>::Init() 
> /home/systest/Impala/be/src/kudu/gutil/singleton.h:117:17 
> (llvm-codegen-test+0x19ef6e4)
>     #6 GoogleOnceInternalInit(int*, void (*)(), void (*)(void*), void*) 
> /home/systest/Impala/be/src/gutil/once.cc:38:7 (llvm-codegen-test+0x4005393)
>     #7 GoogleOnceInit(GoogleOnceType*, void (*)()) 
> /home/systest/Impala/be/src/kudu/gutil/once.h:55:5 
> (llvm-codegen-test+0x19c8ecd)
>     #8 Singleton<kudu::KernelStackWatchdog>::get() 
> /home/systest/Impala/be/src/kudu/gutil/singleton.h:79:5 
> (llvm-codegen-test+0x19ef691)
>     #9 kudu::KernelStackWatchdog::GetInstance() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.h:87:12 
> (llvm-codegen-test+0x19ee073)
>     #10 kudu::KernelStackWatchdog::CreateAndRegisterTLS() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.cc:219:3 
> (llvm-codegen-test+0x19ed3b7)
>     #11 kudu::KernelStackWatchdog::GetTLS() 
> /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.h:170:7 
> (llvm-codegen-test+0x19cd7e1)
>     #12 kudu::ScopedWatchKernelStack::ScopedWatchKernelStack(char const*, 
> int) /home/systest/Impala/be/src/kudu/util/kernel_stack_watchdog.h:248:13 
> (llvm-codegen-test+0x19c99f8)
>     #13 kudu::Thread::StartThread(std::string const&, std::string const&, 
> boost::function<void ()> const&, unsigned long, scoped_refptr<kudu::Thread>*) 
> /home/systest/Impala/be/src/kudu/util/thread.cc:555:28 
> (llvm-codegen-test+0x19c7129)
>     #14 kudu::Status kudu::Thread::Create<void 
> (kudu::rpc::ReactorThread::*)(), kudu::rpc::ReactorThread*>(std::string 
> const&, std::string const&, void (kudu::rpc::ReactorThread::* const&)(), 
> kudu::rpc::ReactorThread* const&, scoped_refptr<kudu::Thread>*) /home/systest/
> Impala/be/src/kudu/util/thread.h:164:12 (llvm-codegen-test+0x26e1875)
>     #15 kudu::rpc::ReactorThread::Init() 
> /home/systest/Impala/be/src/kudu/rpc/reactor.cc:185:10 
> (llvm-codegen-test+0x26dc126)
>     #16 kudu::rpc::Reactor::Init() 
> /home/systest/Impala/be/src/kudu/rpc/reactor.cc:759:18 
> (llvm-codegen-test+0x26e06d1)
>     #17 kudu::rpc::Messenger::Init() 
> /home/systest/Impala/be/src/kudu/rpc/messenger.cc:446:41 
> (llvm-codegen-test+0x26c9a8d)
>     #18 
> kudu::rpc::MessengerBuilder::Build(std::shared_ptr<kudu::rpc::Messenger>*) 
> /home/systest/Impala/be/src/kudu/rpc/messenger.cc:205:46 
> (llvm-codegen-test+0x26c95fe)
>     #19 impala::RpcMgr::Init(impala::TNetworkAddress const&) 
> /home/systest/Impala/be/src/rpc/rpc-mgr.cc:151:38 
> (llvm-codegen-test+0x2722a62)
>     #20 impala::TestEnv::Init() 
> /home/systest/Impala/be/src/runtime/test-env.cc:82:64 
> (llvm-codegen-test+0x1b3df91)
>     #21 impala::LlvmCodeGenTest::SetUp() 
> /home/systest/Impala/be/src/codegen/llvm-codegen-test.cc:49:46 
> (llvm-codegen-test+0x1913e02)
>     #22 void 
> testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, 
> void>(testing::Test*, void (testing::Test::*)(), char const*) <null> 
> (llvm-codegen-test+0x412afd2)
>     #23 __libc_start_main 
> /build/glibc-LK5gWL/glibc-2.23/csu/../csu/libc-start.c:291 (libc.so.6+0x2082f)
> SUMMARY: ThreadSanitizer: data race 
> /home/systest/Impala/be/src/gutil/atomicops-internals-tsan.h:104:3 in 
> base::subtle::Acquire_Store(int volatile*, int)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to