You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2023/12/17 22:40:00 UTC
[jira] [Commented] (IMPALA-12632) TSAN detected data race accessing CpuUsageRatios
[ 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 <im...@cloudera.com>
Tested-by: Impala Public Jenkins <im...@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-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org