[ https://issues.apache.org/jira/browse/IMPALA-12632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17797974#comment-17797974 ]
ASF subversion and git services commented on IMPALA-12632: ---------------------------------------------------------- Commit 4114fe8db6ec80b2e1679e946555f91ab7043f2e in impala's branch refs/heads/master from Andrew Sherman [ https://gitbox.apache.org/repos/asf?p=impala.git;h=4114fe8db ] IMPALA-12632: Use Atomics for CpuUsageRatio counters Now that IMPALA-12614 is fixed we see another data race in TSAN builds. Fix this by using the same strategy as IMPALA-12614, and use AtomicInt32 for the CpuUsageRatios values. Testing: TSAN tests cover this case. Change-Id: I373cb8ae1a45e5ec07318ccb5870e65efc906cca Reviewed-on: http://gerrit.cloudera.org:8080/20798 Reviewed-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenk...@cloudera.com> > TSAN detected data race accessing CpuUsageRatios > ------------------------------------------------ > > Key: IMPALA-12632 > URL: https://issues.apache.org/jira/browse/IMPALA-12632 > Project: IMPALA > Issue Type: Bug > Components: Backend > Affects Versions: Impala 1.4.2 > Reporter: Andrew Sherman > Assignee: Andrew Sherman > Priority: Critical > > This looks like a similar problem to IMPALA-12614, which can hopefully be > fixed with the same strategy of using AtomicInt32 for the components in > CpuUsageRatios. > WARNING: ThreadSanitizer: data race (pid=7397) > {code} > Write of size 4 at 0x7b54000822d4 by thread T4 (mutexes: write M3360): > #0 impala::SystemStateInfo::ComputeCpuRatios() > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/util/system-state-info.cc:149:20 > (impalad+0x2cab247) > #1 impala::SystemStateInfo::CaptureSystemStateSnapshot() > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/util/system-state-info.cc:95:3 > (impalad+0x2caaf3c) > #2 impala::ExecEnv::InitSystemStateInfo()::$_8::operator()() const > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/runtime/exec-env.cc:639:8 > (impalad+0x2577161) > #3 void std::__invoke_impl<void, > impala::ExecEnv::InitSystemStateInfo()::$_8&>(std::__invoke_other, > impala::ExecEnv::InitSystemStateInfo()::$_8&) > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/gcc-10.4.0/lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../include/c++/10.4.0/bits/invoke.h:60:14 > (impalad+0x25770f1) > #4 std::enable_if<is_invocable_r_v<void, > impala::ExecEnv::InitSystemStateInfo()::$_8&>, void>::type > std::__invoke_r<void, > impala::ExecEnv::InitSystemStateInfo()::$_8&>(impala::ExecEnv::InitSystemStateInfo()::$_8&) > > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/gcc-10.4.0/lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../include/c++/10.4.0/bits/invoke.h:110:2 > (impalad+0x2577071) > #5 std::_Function_handler<void (), > impala::ExecEnv::InitSystemStateInfo()::$_8>::_M_invoke(std::_Any_data > const&) > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/gcc-10.4.0/lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../include/c++/10.4.0/bits/std_function.h:291:9 > (impalad+0x2576f41) > #6 std::function<void ()>::operator()() const > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/Impala-Toolchain/toolchain-packages-gcc10.4.0/gcc-10.4.0/lib/gcc/x86_64-pc-linux-gnu/10.4.0/../../../../include/c++/10.4.0/bits/std_function.h:622:14 > (impalad+0x23dee3c) > #7 > impala::PeriodicCounterUpdater::UpdateLoop(impala::PeriodicCounterUpdater*) > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/util/periodic-counter-updater.cc:175:39 > (impalad+0x2c3e6d6) > #8 boost::_mfi::mf1<void, impala::PeriodicCounterUpdater, > impala::PeriodicCounterUpdater*>::operator()(impala::PeriodicCounterUpdater*, > impala::PeriodicCounterUpdater*) 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+0x2c4382d) > #9 void > boost::_bi::list2<boost::_bi::value<impala::PeriodicCounterUpdater*>, > boost::_bi::value<impala::PeriodicCounterUpdater*> > >::operator()<boost::_mfi::mf1<void, impala::PeriodicCounterUpdater, > impala::PeriodicCounterUpdater*>, boost::_bi::list0>(boost::_bi::type<void>, > boost::_mfi::mf1<void, impala::PeriodicCounterUpdater, > impala::PeriodicCounterUpdater*>&, 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+0x2c4376d) > #10 boost::_bi::bind_t<void, boost::_mfi::mf1<void, > impala::PeriodicCounterUpdater, impala::PeriodicCounterUpdater*>, > boost::_bi::list2<boost::_bi::value<impala::PeriodicCounterUpdater*>, > boost::_bi::value<impala::PeriodicCounterUpdater*> > >::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+0x2c436d3) > #11 boost::detail::thread_data<boost::_bi::bind_t<void, > boost::_mfi::mf1<void, impala::PeriodicCounterUpdater, > impala::PeriodicCounterUpdater*>, > boost::_bi::list2<boost::_bi::value<impala::PeriodicCounterUpdater*>, > boost::_bi::value<impala::PeriodicCounterUpdater*> > > >::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+0x2c43140) > #12 thread_proxy <null> (impalad+0x3a0dbf6) > {code} > {code} > Previous read of size 4 at 0x7b54000822d4 by thread T3 (mutexes: write > M3193, write M165007): > #0 impala::QueryState::Init(impala::ExecQueryFInstancesRequestPB const*, > impala::TExecPlanFragmentInfo const&)::$_8::operator()() const > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/runtime/query-state.cc:223:55 > (impalad+0x25f70cc) > #1 > boost::detail::function::function_obj_invoker0<impala::QueryState::Init(impala::ExecQueryFInstancesRequestPB > const*, impala::TExecPlanFragmentInfo const&)::$_8, > long>::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:137:18 > (impalad+0x25f6ea9) > #2 boost::function0<long>::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+0x2c40031) > #3 impala::RuntimeProfile::TimeSeriesCounter::AddSample(int) > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/util/runtime-profile.cc:2050:20 > (impalad+0x2c62ade) > #4 > impala::PeriodicCounterUpdater::UpdateLoop(impala::PeriodicCounterUpdater*) > /data/jenkins/workspace/impala-cdw-master-staging-core-tsan/repos/Impala/be/src/util/periodic-counter-updater.cc:229:16 > (impalad+0x2c3e602) > #5 boost::_mfi::mf1<void, impala::PeriodicCounterUpdater, > impala::PeriodicCounterUpdater*>::operator()(impala::PeriodicCounterUpdater*, > impala::PeriodicCounterUpdater*) 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+0x2c4382d) > #6 void > boost::_bi::list2<boost::_bi::value<impala::PeriodicCounterUpdater*>, > boost::_bi::value<impala::PeriodicCounterUpdater*> > >::operator()<boost::_mfi::mf1<void, impala::PeriodicCounterUpdater, > impala::PeriodicCounterUpdater*>, boost::_bi::list0>(boost::_bi::type<void>, > boost::_mfi::mf1<void, impala::PeriodicCounterUpdater, > impala::PeriodicCounterUpdater*>&, 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+0x2c4376d) > #7 boost::_bi::bind_t<void, boost::_mfi::mf1<void, > impala::PeriodicCounterUpdater, impala::PeriodicCounterUpdater*>, > boost::_bi::list2<boost::_bi::value<impala::PeriodicCounterUpdater*>, > boost::_bi::value<impala::PeriodicCounterUpdater*> > >::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+0x2c436d3) > #8 boost::detail::thread_data<boost::_bi::bind_t<void, > boost::_mfi::mf1<void, impala::PeriodicCounterUpdater, > impala::PeriodicCounterUpdater*>, > boost::_bi::list2<boost::_bi::value<impala::PeriodicCounterUpdater*>, > boost::_bi::value<impala::PeriodicCounterUpdater*> > > >::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+0x2c43140) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-all-unsubscr...@impala.apache.org For additional commands, e-mail: issues-all-h...@impala.apache.org