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

Sahil Takiar resolved IMPALA-9374.
----------------------------------
    Fix Version/s: Impala 4.0
       Resolution: Fixed

> Possible data race in TupleDescriptor::GetLlvmStruct
> ----------------------------------------------------
>
>                 Key: IMPALA-9374
>                 URL: https://issues.apache.org/jira/browse/IMPALA-9374
>             Project: IMPALA
>          Issue Type: Sub-task
>          Components: Backend
>            Reporter: Sahil Takiar
>            Assignee: Sahil Takiar
>            Priority: Major
>             Fix For: Impala 4.0
>
>
> A full run of E2E tests against a TSAN build has a ton of the following data 
> races:
> {code:java}
> WARNING: ThreadSanitizer: data race (pid=10046)
>   Write of size 4 at 0x7b240053a534 by thread T315:
>     #0 impala::TupleDescriptor::GetLlvmStruct(impala::LlvmCodeGen*) const 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/descriptors.cc:739:27
>  (impalad+0x1f051be)
>     #1 impala::AggregatorConfig::CodegenUpdateTuple(impala::LlvmCodeGen*, 
> llvm::Function**) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/exec/aggregator.cc:552:33
>  (impalad+0x24c2881)
>     #2 
> impala::GroupingAggregatorConfig::CodegenAddBatchStreamingImpl(impala::LlvmCodeGen*,
>  impala::TPrefetchMode::type) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/exec/grouping-aggregator.cc:1087:3
>  (impalad+0x247d081)
>     #3 impala::GroupingAggregatorConfig::Codegen(impala::RuntimeState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/exec/grouping-aggregator.cc:196:33
>  (impalad+0x247ceda)
>     #4 impala::GroupingAggregator::Codegen(impala::RuntimeState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/exec/grouping-aggregator.cc:203:58
>  (impalad+0x247e096)
>     #5 impala::AggregationNodeBase::Codegen(impala::RuntimeState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/exec/aggregation-node-base.cc:100:32
>  (impalad+0x2452356)
>     #6 impala::FragmentInstanceState::Open() 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/fragment-instance-state.cc:342:19
>  (impalad+0x1f1bcf5)
>     #7 impala::FragmentInstanceState::Exec() 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/fragment-instance-state.cc:86:12
>  (impalad+0x1f1a1bb)
>     #8 impala::QueryState::ExecFInstance(impala::FragmentInstanceState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-state.cc:694:24
>  (impalad+0x1f2c953)
>     #9 impala::QueryState::StartFInstances()::$_7::operator()() const 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-state.cc:603:35
>  (impalad+0x1f2eaa2)
>     #10 
> boost::detail::function::void_function_obj_invoker0<impala::QueryState::StartFInstances()::$_7,
>  void>::invoke(boost::detail::function::function_buffer&) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153:11
>  (impalad+0x1f2e8c9)
>     #11 boost::function0<void>::operator()() const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:766:14
>  (impalad+0x1cf2d21)
>     #12 impala::Thread::SuperviseThread(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.cc:360:3
>  (impalad+0x22a3ab6)
>     #13 void boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> 
> >::operator()<void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list0>(boost::_bi::type<void>, void (*&)(std::string const&, 
> std::string const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), boost::_bi::list0&, int) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:525:9
>  (impalad+0x22abb6c)
>     #14 boost::_bi::bind_t<void, void (*)(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > 
> >::operator()() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:27
>  (impalad+0x22aba83)
>     #15 boost::detail::thread_data<boost::_bi::bind_t<void, void 
> (*)(std::string const&, std::string const&, boost::function<void ()>, 
> impala::ThreadDebugInfo const*, impala::Promise<long, 
> (impala::PromiseMode)0>*), boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > > 
> >::run() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:116:17
>  (impalad+0x22ab770)
>     #16 thread_proxy <null> (impalad+0x2f7c8d9)
>   Previous write of size 4 at 0x7b240053a534 by thread T340:
>     #0 impala::TupleDescriptor::GetLlvmStruct(impala::LlvmCodeGen*) const 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/descriptors.cc:739:27
>  (impalad+0x1f051be)
>     #1 impala::AggregatorConfig::CodegenUpdateTuple(impala::LlvmCodeGen*, 
> llvm::Function**) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/exec/aggregator.cc:552:33
>  (impalad+0x24c2881)
>     #2 
> impala::GroupingAggregatorConfig::CodegenAddBatchImpl(impala::LlvmCodeGen*, 
> impala::TPrefetchMode::type) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/exec/grouping-aggregator.cc:1001:3
>  (impalad+0x247d890)
>     #3 impala::GroupingAggregatorConfig::Codegen(impala::RuntimeState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/exec/grouping-aggregator.cc:197:33
>  (impalad+0x247ceed)
>     #4 impala::GroupingAggregator::Codegen(impala::RuntimeState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/exec/grouping-aggregator.cc:203:58
>  (impalad+0x247e096)
>     #5 impala::AggregationNodeBase::Codegen(impala::RuntimeState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/exec/aggregation-node-base.cc:100:32
>  (impalad+0x2452356)
>     #6 impala::FragmentInstanceState::Open() 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/fragment-instance-state.cc:342:19
>  (impalad+0x1f1bcf5)
>     #7 impala::FragmentInstanceState::Exec() 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/fragment-instance-state.cc:86:12
>  (impalad+0x1f1a1bb)
>     #8 impala::QueryState::ExecFInstance(impala::FragmentInstanceState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-state.cc:694:24
>  (impalad+0x1f2c953)
>     #9 impala::QueryState::StartFInstances()::$_7::operator()() const 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-state.cc:603:35
>  (impalad+0x1f2eaa2)
>     #10 
> boost::detail::function::void_function_obj_invoker0<impala::QueryState::StartFInstances()::$_7,
>  void>::invoke(boost::detail::function::function_buffer&) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153:11
>  (impalad+0x1f2e8c9)
>     #11 boost::function0<void>::operator()() const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:766:14
>  (impalad+0x1cf2d21)
>     #12 impala::Thread::SuperviseThread(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.cc:360:3
>  (impalad+0x22a3ab6)
>     #13 void boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> 
> >::operator()<void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list0>(boost::_bi::type<void>, void (*&)(std::string const&, 
> std::string const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), boost::_bi::list0&, int) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:525:9
>  (impalad+0x22abb6c)
>     #14 boost::_bi::bind_t<void, void (*)(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > 
> >::operator()() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:27
>  (impalad+0x22aba83)
>     #15 boost::detail::thread_data<boost::_bi::bind_t<void, void 
> (*)(std::string const&, std::string const&, boost::function<void ()>, 
> impala::ThreadDebugInfo const*, impala::Promise<long, 
> (impala::PromiseMode)0>*), boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > > 
> >::run() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:116:17
>  (impalad+0x22ab770)
>     #16 thread_proxy <null> (impalad+0x2f7c8d9)
>   Location is heap block of size 136 at 0x7b240053a4b0 allocated by thread 
> T37:
>     #0 operator new(unsigned long) 
> /mnt/source/llvm/llvm-5.0.1.src-p2/projects/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc:44
>  (impalad+0x191d133)
>     #1 impala::DescriptorTbl::CreateInternal(impala::ObjectPool*, 
> impala::TDescriptorTable const&, impala::DescriptorTbl**) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/descriptors.cc:610:9
>  (impalad+0x1f0478b)
>     #2 impala::DescriptorTbl::Create(impala::ObjectPool*, 
> impala::TDescriptorTableSerialized const&, impala::DescriptorTbl**) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/descriptors.cc:579:10
>  (impalad+0x1f04485)
>     #3 impala::QueryState::StartFInstances() 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-state.cc:567:7
>  (impalad+0x1f2b74e)
>     #4 impala::QueryExecMgr::ExecuteQueryHelper(impala::QueryState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-exec-mgr.cc:134:7
>  (impalad+0x1f79899)
>     #5 boost::_mfi::mf1<void, impala::QueryExecMgr, 
> impala::QueryState*>::operator()(impala::QueryExecMgr*, impala::QueryState*) 
> const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/mem_fn_template.hpp:165:29
>  (impalad+0x1f7ab8d)
>     #6 void boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, 
> boost::_bi::value<impala::QueryState*> >::operator()<boost::_mfi::mf1<void, 
> impala::QueryExecMgr, impala::QueryState*>, 
> boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf1<void, 
> impala::QueryExecMgr, impala::QueryState*>&, boost::_bi::list0&, int) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:313:9
>  (impalad+0x1f7aacd)
>     #7 boost::_bi::bind_t<void, boost::_mfi::mf1<void, impala::QueryExecMgr, 
> impala::QueryState*>, 
> boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, 
> boost::_bi::value<impala::QueryState*> > >::operator()() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:27
>  (impalad+0x1f7aa33)
>     #8 
> boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
> boost::_mfi::mf1<void, impala::QueryExecMgr, impala::QueryState*>, 
> boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, 
> boost::_bi::value<impala::QueryState*> > >, 
> void>::invoke(boost::detail::function::function_buffer&) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153:11
>  (impalad+0x1f7a7d1)
>     #9 boost::function0<void>::operator()() const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:766:14
>  (impalad+0x1cf2d21)
>     #10 impala::Thread::SuperviseThread(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.cc:360:3
>  (impalad+0x22a3ab6)
>     #11 void boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> 
> >::operator()<void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list0>(boost::_bi::type<void>, void (*&)(std::string const&, 
> std::string const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), boost::_bi::list0&, int) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:525:9
>  (impalad+0x22abb6c)
>     #12 boost::_bi::bind_t<void, void (*)(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > 
> >::operator()() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:27
>  (impalad+0x22aba83)
>     #13 boost::detail::thread_data<boost::_bi::bind_t<void, void 
> (*)(std::string const&, std::string const&, boost::function<void ()>, 
> impala::ThreadDebugInfo const*, impala::Promise<long, 
> (impala::PromiseMode)0>*), boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > > 
> >::run() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:116:17
>  (impalad+0x22ab770)
>     #14 thread_proxy <null> (impalad+0x2f7c8d9)
>   Thread T315 (tid=14626, running) created by thread T37 at:
>     #0 pthread_create 
> /mnt/source/llvm/llvm-5.0.1.src-p2/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:889
>  (impalad+0x18b4b1b)
>     #1 boost::thread::start_thread_noexcept() <null> (impalad+0x2f7bcb9)
>     #2 boost::thread::thread<void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), std::string, std::string, 
> boost::function<void ()>, impala::ThreadDebugInfo*, impala::Promise<long, 
> (impala::PromiseMode)0>*>(void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), std::string, std::string, 
> boost::function<void ()>, impala::ThreadDebugInfo*, impala::Promise<long, 
> (impala::PromiseMode)0>*) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:419:13
>  (impalad+0x22a616b)
>     #3 impala::Thread::StartThread(std::string const&, std::string const&, 
> boost::function<void ()> const&, std::unique_ptr<impala::Thread, 
> std::default_delete<impala::Thread> >*, bool) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.cc:317:13
>  (impalad+0x22a3455)
>     #4 impala::Status 
> impala::Thread::Create<impala::QueryState::StartFInstances()::$_7>(std::string
>  const&, std::string const&, impala::QueryState::StartFInstances()::$_7 
> const&, std::unique_ptr<impala::Thread, std::default_delete<impala::Thread> 
> >*, bool) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.h:74:12
>  (impalad+0x1f2c2ca)
>     #5 impala::QueryState::StartFInstances() 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-state.cc:602:9
>  (impalad+0x1f2bc0a)
>     #6 impala::QueryExecMgr::ExecuteQueryHelper(impala::QueryState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-exec-mgr.cc:134:7
>  (impalad+0x1f79899)
>     #7 boost::_mfi::mf1<void, impala::QueryExecMgr, 
> impala::QueryState*>::operator()(impala::QueryExecMgr*, impala::QueryState*) 
> const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/mem_fn_template.hpp:165:29
>  (impalad+0x1f7ab8d)
>     #8 void boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, 
> boost::_bi::value<impala::QueryState*> >::operator()<boost::_mfi::mf1<void, 
> impala::QueryExecMgr, impala::QueryState*>, 
> boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf1<void, 
> impala::QueryExecMgr, impala::QueryState*>&, boost::_bi::list0&, int) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:313:9
>  (impalad+0x1f7aacd)
>     #9 boost::_bi::bind_t<void, boost::_mfi::mf1<void, impala::QueryExecMgr, 
> impala::QueryState*>, 
> boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, 
> boost::_bi::value<impala::QueryState*> > >::operator()() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:27
>  (impalad+0x1f7aa33)
>     #10 
> boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
> boost::_mfi::mf1<void, impala::QueryExecMgr, impala::QueryState*>, 
> boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, 
> boost::_bi::value<impala::QueryState*> > >, 
> void>::invoke(boost::detail::function::function_buffer&) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153:11
>  (impalad+0x1f7a7d1)
>     #11 boost::function0<void>::operator()() const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:766:14
>  (impalad+0x1cf2d21)
>     #12 impala::Thread::SuperviseThread(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.cc:360:3
>  (impalad+0x22a3ab6)
>     #13 void boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> 
> >::operator()<void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list0>(boost::_bi::type<void>, void (*&)(std::string const&, 
> std::string const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), boost::_bi::list0&, int) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:525:9
>  (impalad+0x22abb6c)
>     #14 boost::_bi::bind_t<void, void (*)(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > 
> >::operator()() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:27
>  (impalad+0x22aba83)
>     #15 boost::detail::thread_data<boost::_bi::bind_t<void, void 
> (*)(std::string const&, std::string const&, boost::function<void ()>, 
> impala::ThreadDebugInfo const*, impala::Promise<long, 
> (impala::PromiseMode)0>*), boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > > 
> >::run() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:116:17
>  (impalad+0x22ab770)
>     #16 thread_proxy <null> (impalad+0x2f7c8d9)
>   Thread T340 (tid=14625, running) created by thread T37 at:
>     #0 pthread_create 
> /mnt/source/llvm/llvm-5.0.1.src-p2/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:889
>  (impalad+0x18b4b1b)
>     #1 boost::thread::start_thread_noexcept() <null> (impalad+0x2f7bcb9)
>     #2 boost::thread::thread<void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), std::string, std::string, 
> boost::function<void ()>, impala::ThreadDebugInfo*, impala::Promise<long, 
> (impala::PromiseMode)0>*>(void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), std::string, std::string, 
> boost::function<void ()>, impala::ThreadDebugInfo*, impala::Promise<long, 
> (impala::PromiseMode)0>*) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:419:13
>  (impalad+0x22a616b)
>     #3 impala::Thread::StartThread(std::string const&, std::string const&, 
> boost::function<void ()> const&, std::unique_ptr<impala::Thread, 
> std::default_delete<impala::Thread> >*, bool) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.cc:317:13
>  (impalad+0x22a3455)
>     #4 impala::Status 
> impala::Thread::Create<impala::QueryState::StartFInstances()::$_7>(std::string
>  const&, std::string const&, impala::QueryState::StartFInstances()::$_7 
> const&, std::unique_ptr<impala::Thread, std::default_delete<impala::Thread> 
> >*, bool) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.h:74:12
>  (impalad+0x1f2c2ca)
>     #5 impala::QueryState::StartFInstances() 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-state.cc:602:9
>  (impalad+0x1f2bc0a)
>     #6 impala::QueryExecMgr::ExecuteQueryHelper(impala::QueryState*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-exec-mgr.cc:134:7
>  (impalad+0x1f79899)
>     #7 boost::_mfi::mf1<void, impala::QueryExecMgr, 
> impala::QueryState*>::operator()(impala::QueryExecMgr*, impala::QueryState*) 
> const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/mem_fn_template.hpp:165:29
>  (impalad+0x1f7ab8d)
>     #8 void boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, 
> boost::_bi::value<impala::QueryState*> >::operator()<boost::_mfi::mf1<void, 
> impala::QueryExecMgr, impala::QueryState*>, 
> boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf1<void, 
> impala::QueryExecMgr, impala::QueryState*>&, boost::_bi::list0&, int) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:313:9
>  (impalad+0x1f7aacd)
>     #9 boost::_bi::bind_t<void, boost::_mfi::mf1<void, impala::QueryExecMgr, 
> impala::QueryState*>, 
> boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, 
> boost::_bi::value<impala::QueryState*> > >::operator()() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:27
>  (impalad+0x1f7aa33)
>     #10 
> boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
> boost::_mfi::mf1<void, impala::QueryExecMgr, impala::QueryState*>, 
> boost::_bi::list2<boost::_bi::value<impala::QueryExecMgr*>, 
> boost::_bi::value<impala::QueryState*> > >, 
> void>::invoke(boost::detail::function::function_buffer&) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153:11
>  (impalad+0x1f7a7d1)
>     #11 boost::function0<void>::operator()() const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:766:14
>  (impalad+0x1cf2d21)
>     #12 impala::Thread::SuperviseThread(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.cc:360:3
>  (impalad+0x22a3ab6)
>     #13 void boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> 
> >::operator()<void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list0>(boost::_bi::type<void>, void (*&)(std::string const&, 
> std::string const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), boost::_bi::list0&, int) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:525:9
>  (impalad+0x22abb6c)
>     #14 boost::_bi::bind_t<void, void (*)(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > 
> >::operator()() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:27
>  (impalad+0x22aba83)
>     #15 boost::detail::thread_data<boost::_bi::bind_t<void, void 
> (*)(std::string const&, std::string const&, boost::function<void ()>, 
> impala::ThreadDebugInfo const*, impala::Promise<long, 
> (impala::PromiseMode)0>*), boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > > 
> >::run() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:116:17
>  (impalad+0x22ab770)
>     #16 thread_proxy <null> (impalad+0x2f7c8d9)
>   Thread T37 (tid=14623, running) created by thread T106 at:
>     #0 pthread_create 
> /mnt/source/llvm/llvm-5.0.1.src-p2/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:889
>  (impalad+0x18b4b1b)
>     #1 boost::thread::start_thread_noexcept() <null> (impalad+0x2f7bcb9)
>     #2 boost::thread::thread<void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), std::string, std::string, 
> boost::function<void ()>, impala::ThreadDebugInfo*, impala::Promise<long, 
> (impala::PromiseMode)0>*>(void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), std::string, std::string, 
> boost::function<void ()>, impala::ThreadDebugInfo*, impala::Promise<long, 
> (impala::PromiseMode)0>*) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:419:13
>  (impalad+0x22a616b)
>     #3 impala::Thread::StartThread(std::string const&, std::string const&, 
> boost::function<void ()> const&, std::unique_ptr<impala::Thread, 
> std::default_delete<impala::Thread> >*, bool) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.cc:317:13
>  (impalad+0x22a3455)
>     #4 impala::Status impala::Thread::Create<void 
> (impala::QueryExecMgr::*)(impala::QueryState*), impala::QueryExecMgr*, 
> impala::QueryState*>(std::string const&, std::string const&, void 
> (impala::QueryExecMgr::* const&)(impala::QueryState*), impala::QueryExecMgr* 
> const&, impala::QueryState* const&, std::unique_ptr<impala::Thread, 
> std::default_delete<impala::Thread> >*, bool) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.h:89:12
>  (impalad+0x1f79e77)
>     #5 impala::QueryExecMgr::StartQuery(impala::ExecQueryFInstancesRequestPB 
> const*, impala::TQueryCtx const&, impala::TExecPlanFragmentInfo const&) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/query-exec-mgr.cc:62:12
>  (impalad+0x1f78d62)
>     #6 
> impala::ControlService::ExecQueryFInstances(impala::ExecQueryFInstancesRequestPB
>  const*, impala::ExecQueryFInstancesResponsePB*, kudu::rpc::RpcContext*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/service/control-service.cc:156:66
>  (impalad+0x2048eae)
>     #7 
> impala::ControlServiceIf::ControlServiceIf(scoped_refptr<kudu::MetricEntity> 
> const&, scoped_refptr<kudu::rpc::ResultTracker> 
> const&)::$_1::operator()(google::protobuf::Message const*, 
> google::protobuf::Message*, kudu::rpc::RpcContext*) const 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/generated-sources/gen-cpp/control_service.service.cc:70:13
>  (impalad+0x20faae4)
>     #8 std::_Function_handler<void (google::protobuf::Message const*, 
> google::protobuf::Message*, kudu::rpc::RpcContext*), 
> impala::ControlServiceIf::ControlServiceIf(scoped_refptr<kudu::MetricEntity> 
> const&, scoped_refptr<kudu::rpc::ResultTracker> 
> const&)::$_1>::_M_invoke(std::_Any_data const&, google::protobuf::Message 
> const*, google::protobuf::Message*, kudu::rpc::RpcContext*) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/gcc-4.9.2/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../include/c++/4.9.2/functional:2039:2
>  (impalad+0x20fa8ce)
>     #9 std::function<void (google::protobuf::Message const*, 
> google::protobuf::Message*, 
> kudu::rpc::RpcContext*)>::operator()(google::protobuf::Message const*, 
> google::protobuf::Message*, kudu::rpc::RpcContext*) const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/gcc-4.9.2/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/../../../../include/c++/4.9.2/functional:2439:14
>  (impalad+0x278a638)
>     #10 kudu::rpc::GeneratedServiceIf::Handle(kudu::rpc::InboundCall*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/kudu/rpc/service_if.cc:139:3
>  (impalad+0x2789f9e)
>     #11 impala::ImpalaServicePool::RunThread() 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/rpc/impala-service-pool.cc:271:15
>  (impalad+0x1e198df)
>     #12 boost::_mfi::mf0<void, 
> impala::ImpalaServicePool>::operator()(impala::ImpalaServicePool*) const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/mem_fn_template.hpp:49:29
>  (impalad+0x1e1fd36)
>     #13 void boost::_bi::list1<boost::_bi::value<impala::ImpalaServicePool*> 
> >::operator()<boost::_mfi::mf0<void, impala::ImpalaServicePool>, 
> boost::_bi::list0>(boost::_bi::type<void>, boost::_mfi::mf0<void, 
> impala::ImpalaServicePool>&, boost::_bi::list0&, int) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:253:9
>  (impalad+0x1e1fc8a)
>     #14 boost::_bi::bind_t<void, boost::_mfi::mf0<void, 
> impala::ImpalaServicePool>, 
> boost::_bi::list1<boost::_bi::value<impala::ImpalaServicePool*> > 
> >::operator()() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:27
>  (impalad+0x1e1fc13)
>     #15 
> boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
> boost::_mfi::mf0<void, impala::ImpalaServicePool>, 
> boost::_bi::list1<boost::_bi::value<impala::ImpalaServicePool*> > >, 
> void>::invoke(boost::detail::function::function_buffer&) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153:11
>  (impalad+0x1e1fa09)
>     #16 boost::function0<void>::operator()() const 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:766:14
>  (impalad+0x1cf2d21)
>     #17 impala::Thread::SuperviseThread(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*) 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/util/thread.cc:360:3
>  (impalad+0x22a3ab6)
>     #18 void boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> 
> >::operator()<void (*)(std::string const&, std::string const&, 
> boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list0>(boost::_bi::type<void>, void (*&)(std::string const&, 
> std::string const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), boost::_bi::list0&, int) 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:525:9
>  (impalad+0x22abb6c)
>     #19 boost::_bi::bind_t<void, void (*)(std::string const&, std::string 
> const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
> impala::Promise<long, (impala::PromiseMode)0>*), 
> boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > 
> >::operator()() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20:27
>  (impalad+0x22aba83)
>     #20 boost::detail::thread_data<boost::_bi::bind_t<void, void 
> (*)(std::string const&, std::string const&, boost::function<void ()>, 
> impala::ThreadDebugInfo const*, impala::Promise<long, 
> (impala::PromiseMode)0>*), boost::_bi::list5<boost::_bi::value<std::string>, 
> boost::_bi::value<std::string>, boost::_bi::value<boost::function<void ()> >, 
> boost::_bi::value<impala::ThreadDebugInfo*>, 
> boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*> > > 
> >::run() 
> /data/jenkins/workspace/impala-private-parameterized/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/detail/thread.hpp:116:17
>  (impalad+0x22ab770)
>     #21 thread_proxy <null> (impalad+0x2f7c8d9)
> SUMMARY: ThreadSanitizer: data race 
> /data/jenkins/workspace/impala-private-parameterized/repos/Impala/be/src/runtime/descriptors.cc:739:27
>  in impala::TupleDescriptor::GetLlvmStruct(impala::LlvmCodeGen*) const {code}



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

Reply via email to