Laszlo Gaal created IMPALA-14476:
------------------------------------
Summary: Data race in TSAN build in during dataload in
be/src/kudu/util/status.cc
Key: IMPALA-14476
URL: https://issues.apache.org/jira/browse/IMPALA-14476
Project: IMPALA
Issue Type: Bug
Components: Backend
Affects Versions: Impala 5.0.0
Reporter: Laszlo Gaal
Assignee: Riza Suminto
Since the toolchain was bumped to pick up Kudu's array column feature
(KUDU-1261), Impala's TSAN builds on the master branch consistently break
during dataload with a data race detected by TSAN. Impalad.ERROR reports:
{code}
WARNING: ThreadSanitizer: data race (pid=59148)
Read of size 1 at 0x7b1c00426c54 by thread T280:
#0 kudu::Status::code() const
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/kudu/util/status.h:483:55
(impalad+0x27d2eea)
#1 kudu::Status::CloneAndPrepend(kudu::Slice const&) const
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/kudu/util/status.cc:159:17
(impalad+0x27e89a1)
#2 kudu::rpc::Connection::Shutdown(kudu::Status const&,
std::unique_ptr<kudu::rpc::ErrorStatusPB,
std::default_delete<kudu::rpc::ErrorStatusPB> >)
/mnt/source/kudu/kudu-16689973a/src/kudu/rpc/connection.cc:153:44
(libkudu_client.so.0+0x20aefd)
Previous write of size 1 at 0x7b1c00426c54 by thread T255:
#0 kudu::Status::Status(kudu::Status::Code, kudu::Slice const&, kudu::Slice
const&, short)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/kudu/util/status.cc:34:13
(impalad+0x27e8584)
#1 kudu::Status::CloneAndPrepend(kudu::Slice const&) const
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/kudu/util/status.cc:159:10
(impalad+0x27e89d2)
#2
kudu::rpc::Negotiation::RunNegotiation(scoped_refptr<kudu::rpc::Connection>
const&, kudu::TriStateFlag, kudu::TriStateFlag, bool, kudu::MonoTime)
/mnt/source/kudu/kudu-16689973a/src/kudu/rpc/negotiation.cc:325:26
(libkudu_client.so.0+0x2180e9)
Location is heap block of size 105 at 0x7b1c00426c50 allocated by thread T255:
#0 operator new[](unsigned long) <null> (impalad+0x229c50a)
#1 kudu::Status::Status(kudu::Status::Code, kudu::Slice const&, kudu::Slice
const&, short)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/kudu/util/status.cc:32:17
(impalad+0x27e856a)
#2 kudu::Status::CloneAndPrepend(kudu::Slice const&) const
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/kudu/util/status.cc:159:10
(impalad+0x27e89d2)
#3
kudu::rpc::Negotiation::RunNegotiation(scoped_refptr<kudu::rpc::Connection>
const&, kudu::TriStateFlag, kudu::TriStateFlag, bool, kudu::MonoTime)
/mnt/source/kudu/kudu-16689973a/src/kudu/rpc/negotiation.cc:325:26
(libkudu_client.so.0+0x2180e9)
Thread T280 'rpc reactor-121' (tid=121625, running) created by thread T277 at:
#0 pthread_create <null> (impalad+0x223e7d3)
#1 kudu::Thread::StartThread(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
>, std::function<void ()>, unsigned long, scoped_refptr<kudu::Thread>*)
/mnt/source/kudu/kudu-16689973a/src/kudu/util/thread.cc:643:29
(libkudu_client.so.0+0x3a985f)
#2
impala::ExecEnv::GetKuduClient(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::tr1::shared_ptr<kudu::client::KuduClient>*)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/runtime/exec-env.cc:732:5
(impalad+0x2965d1e)
#3 impala::KuduPartitionExpr::Init(impala::RowDescriptor const&, bool,
impala::FragmentState*)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/exprs/kudu-partition-expr.cc:53:3
(impalad+0x3a54a5f)
#4 impala::ScalarExpr::Create(impala::TExpr const&, impala::RowDescriptor
const&, impala::FragmentState*, impala::ObjectPool*, impala::ScalarExpr**)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/exprs/scalar-expr.cc:91:25
(impalad+0x39fbe4a)
#5 impala::ScalarExpr::Create(std::vector<impala::TExpr,
std::allocator<impala::TExpr> > const&, impala::RowDescriptor const&,
impala::FragmentState*, impala::ObjectPool*, std::vector<impala::ScalarExpr*,
std::allocator<impala::ScalarExpr*> >*)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/exprs/scalar-expr.cc:107:5
(impalad+0x39fc6e3)
#6 impala::ScalarExpr::Create(std::vector<impala::TExpr,
std::allocator<impala::TExpr> > const&, impala::RowDescriptor const&,
impala::FragmentState*, std::vector<impala::ScalarExpr*,
std::allocator<impala::ScalarExpr*> >*)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/exprs/scalar-expr.cc:121:10
(impalad+0x39fc8b4)
#7 impala::KrpcDataStreamSenderConfig::Init(impala::TDataSink const&,
impala::RowDescriptor const*, impala::FragmentState*)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/runtime/krpc-data-stream-sender.cc:93:5
(impalad+0x2ad62b0)
#8 impala::DataSinkConfig::CreateConfig(impala::TDataSink const&,
impala::RowDescriptor const*, impala::FragmentState*, impala::DataSinkConfig**)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/exec/data-sink.cc:148:3
(impalad+0x324bce4)
#9 impala::FragmentState::Init()
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/runtime/fragment-state.cc:87:3
(impalad+0x2ab9d6e)
#10
impala::FragmentState::CreateFragmentStateMap(impala::TExecPlanFragmentInfo
const&, impala::ExecQueryFInstancesRequestPB const&, impala::QueryState*,
std::unordered_map<int, impala::FragmentState*, std::hash<int>,
std::equal_to<int>, std::allocator<std::pair<int const, impala::FragmentState*>
> >&)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/runtime/fragment-state.cc:80:5
(impalad+0x2ab9aaf)
#11 impala::QueryState::StartFInstances()
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/runtime/query-state.cc:884:29
(impalad+0x29e997c)
#12 impala::QueryExecMgr::ExecuteQueryHelper(impala::QueryState*)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/runtime/query-exec-mgr.cc:170:7
(impalad+0x29d6de9)
#13 boost::_mfi::mf1<void, impala::QueryExecMgr,
impala::QueryState*>::operator()(impala::QueryExecMgr*, impala::QueryState*)
const
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/bind/mem_fn_template.hpp:165:29
(impalad+0x29df75d)
#14 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-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/bind/bind.hpp:319:9
(impalad+0x29df6aa)
#15 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-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/bind/bind.hpp:1294:16
(impalad+0x29df613)
#16
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-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/function/function_template.hpp:158:11
(impalad+0x29df351)
#17 boost::function0<void>::operator()() const
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/function/function_template.hpp:763:14
(impalad+0x296d231)
#18 impala::Thread::SuperviseThread(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, boost::function<void ()> const&, impala::ThreadDebugInfo const*,
impala::Promise<long, (impala::PromiseMode)0>*)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/util/thread.cc:361:3
(impalad+0x3153e65)
#19 void
boost::_bi::list5<boost::_bi::value<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
boost::_bi::value<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, boost::_bi::value<boost::function<void ()> >,
boost::_bi::value<impala::ThreadDebugInfo*>,
boost::_bi::value<impala::Promise<long, (impala::PromiseMode)0>*>
>::operator()<void (*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, boost::function<void ()>
const&, impala::ThreadDebugInfo const*, impala::Promise<long,
(impala::PromiseMode)0>*), boost::_bi::list0>(boost::_bi::type<void>, void
(*&)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, boost::function<void ()>
const&, impala::ThreadDebugInfo const*, impala::Promise<long,
(impala::PromiseMode)0>*), boost::_bi::list0&, int)
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/bind/bind.hpp:531:9
(impalad+0x315d097)
#20 boost::_bi::bind_t<void, void (*)(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
const&, boost::function<void ()> const&, impala::ThreadDebugInfo const*,
impala::Promise<long, (impala::PromiseMode)0>*),
boost::_bi::list5<boost::_bi::value<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
boost::_bi::value<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, 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-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/bind/bind.hpp:1294:16
(impalad+0x315cfb3)
#21 boost::detail::thread_data<boost::_bi::bind_t<void, void
(*)(std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, boost::function<void ()>
const&, impala::ThreadDebugInfo const*, impala::Promise<long,
(impala::PromiseMode)0>*),
boost::_bi::list5<boost::_bi::value<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >,
boost::_bi::value<std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > >, 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-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/boost-1.74.0-p1/include/boost/thread/detail/thread.hpp:120:17
(impalad+0x315c760)
#22 thread_proxy
/mnt/source/boost/boost_1_74_0-p1/libs/thread/src/pthread/thread.cpp:179:37
(impalad+0x3fdc0d6)
Thread T255 'client-negotiat' (tid=121628, running) created by thread T280 at:
#0 pthread_create <null> (impalad+0x223e7d3)
#1 kudu::Thread::StartThread(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >,
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>
>, std::function<void ()>, unsigned long, scoped_refptr<kudu::Thread>*)
/mnt/source/kudu/kudu-16689973a/src/kudu/util/thread.cc:643:29
(libkudu_client.so.0+0x3a985f)
SUMMARY: ThreadSanitizer: data race
/data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/kudu/util/status.h:483:55
in kudu::Status::code() const
{code}
This kills Impala, which then aborts the complete dataload process.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]