[ 
https://issues.apache.org/jira/browse/IMPALA-7775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16669060#comment-16669060
 ] 

Tim Armstrong commented on IMPALA-7775:
---------------------------------------

It looks like the heartbeat thread crashed while the statestore was being 
initialised. Unclear if it's the same statestore instance or a use-after-free 
(the this pointer matches).

{noformat}
Thread 1 (Thread 0x7f30fbc60700 (LWP 3021)):
#0  0x00007f310af09428 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f310af0b02a in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f310ba6984d in __gnu_cxx::__verbose_terminate_handler() () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3  0x00007f310ba676b6 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4  0x00007f310ba67701 in std::terminate() () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5  0x00007f310ba67919 in __cxa_throw () from 
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6  0x0000000001972534 in boost::throw_exception<boost::lock_error> (e=...) at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/throw_exception.hpp:69
#7  0x000000000197117c in boost::mutex::lock (this=0x72fbdf0) at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/pthread/mutex.hpp:119
#8  0x0000000001a85faa in boost::lock_guard<boost::mutex>::lock_guard 
(this=0x7f30fbc5eff0, m_=...) at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/thread/lock_guard.hpp:38
#9  0x0000000001ba42aa in impala::StatsMetric<double, 31>::Update 
(this=0x72fbdd0, value=@0x7f30fbc5f120: 0.0012073819999999999) at 
be/src/util/collection-metrics.h:150
#10 0x0000000001ce1164 in impala::Statestore::SendHeartbeat (this=0x7456000, 
subscriber=0x7370b60) at be/src/statestore/statestore.cc:864
#11 0x0000000001ce1809 in impala::Statestore::DoSubscriberUpdate 
(this=0x7456000, update_kind=impala::Statestore::UpdateKind::HEARTBEAT, 
thread_id=0, update=...) at be/src/statestore/statestore.cc:920
#12 0x0000000001cfb07f in boost::_mfi::mf3<void, impala::Statestore, 
impala::Statestore::UpdateKind, int, 
impala::Statestore::ScheduledSubscriberUpdate const&>::operator() 
(this=0x7432d20, p=0x7456000, 
    a1=impala::Statestore::UpdateKind::HEARTBEAT, a2=0, a3=...) at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/mem_fn_template.hpp:393
#13 0x0000000001cf99a1 in 
boost::_bi::list4<boost::_bi::value<impala::Statestore*>, 
boost::_bi::value<impala::Statestore::UpdateKind>, boost::arg<1>, boost::arg<2> 
>::operator()<boost::_mfi::mf3<void, impala::Statestore, 
impala::Statestore::UpdateKind, int, 
impala::Statestore::ScheduledSubscriberUpdate const&>, boost::_bi::list2<int&, 
impala::Statestore::ScheduledSubscriberUpdate const&> > (this=0x7432d30, f=..., 
a=...)
    at /opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:457
#14 0x0000000001cf7362 in boost::_bi::bind_t<void, boost::_mfi::mf3<void, 
impala::Statestore, impala::Statestore::UpdateKind, int, 
impala::Statestore::ScheduledSubscriberUpdate const&>, 
boost::_bi::list4<boost::_bi::value<impala::Statestore*>, 
boost::_bi::value<impala::Statestore::UpdateKind>, boost::arg<1>, boost::arg<2> 
> >::operator()<int, impala::Statestore::ScheduledSubscriberUpdate> 
(this=0x7432d20,
    a1=@0x7f30fbc5f704: 0, a2=...) at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:89
#15 0x0000000001cf4621 in 
boost::detail::function::void_function_obj_invoker2<boost::_bi::bind_t<void, 
boost::_mfi::mf3<void, impala::Statestore, impala::Statestore::UpdateKind, int, 
impala::Statestore::ScheduledSubscriberUpdate const&>, 
boost::_bi::list4<boost::_bi::value<impala::Statestore*>, 
boost::_bi::value<impala::Statestore::UpdateKind>, boost::arg<1>, boost::arg<2> 
> >, void, int, impala::Statestore::ScheduledSubscriberUpdate const&>::invoke 
(function_obj_ptr=..., a0=0, a1=...) at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153
#16 0x0000000001cf0cff in boost::function2<void, int, 
impala::Statestore::ScheduledSubscriberUpdate const&>::operator() 
(this=0x7456720, a0=0, a1=...)
    at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:767
#17 0x0000000001ceb4d3 in 
impala::ThreadPool<impala::Statestore::ScheduledSubscriberUpdate>::WorkerThread 
(this=0x7456700, thread_id=0) at be/src/util/thread-pool.h:153
#18 0x0000000001cfcc1f in boost::_mfi::mf1<void, 
impala::ThreadPool<impala::Statestore::ScheduledSubscriberUpdate>, 
int>::operator() (this=0x744f9a0, p=0x7456700, a1=0)
    at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/mem_fn_template.hpp:165
#19 0x0000000001cfc3e3 in 
boost::_bi::list2<boost::_bi::value<impala::ThreadPool<impala::Statestore::ScheduledSubscriberUpdate>*>,
 boost::_bi::value<int> >::operator()<boost::_mfi::mf1<void, 
impala::ThreadPool<impala::Statestore::ScheduledSubscriberUpdate>, int>, 
boost::_bi::list0> (this=0x744f9b0, f=..., a=...) at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:313
#20 0x0000000001cfb17f in boost::_bi::bind_t<void, boost::_mfi::mf1<void, 
impala::ThreadPool<impala::Statestore::ScheduledSubscriberUpdate>, int>, 
boost::_bi::list2<boost::_bi::value<impala::ThreadPool<impala::Statestore::ScheduledSubscriberUpdate>*>,
 boost::_bi::value<int> > >::operator() (this=0x744f9a0) at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind_template.hpp:20
#21 0x0000000001cf9c96 in 
boost::detail::function::void_function_obj_invoker0<boost::_bi::bind_t<void, 
boost::_mfi::mf1<void, 
impala::ThreadPool<impala::Statestore::ScheduledSubscriberUpdate>, int>, 
boost::_bi::list2<boost::_bi::value<impala::ThreadPool<impala::Statestore::ScheduledSubscriberUpdate>*>,
 boost::_bi::value<int> > >, void>::invoke (function_obj_ptr=...)
    at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:153
#22 0x00000000019a4f0a in boost::function0<void>::operator() 
(this=0x7f30fbc5fca0) at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/function/function_template.hpp:767
#23 0x0000000001dc6bf3 in impala::Thread::SuperviseThread(std::string const&, 
std::string const&, boost::function<void ()>, impala::ThreadDebugInfo const*, 
impala::Promise<long, (impala::PromiseMode)0>*) (
    name=..., category=..., functor=..., parent_thread_info=0x0, 
thread_started=0x7ffcaa2e2520) at be/src/util/thread.cc:359
#24 0x0000000001dcfdcb in 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::Promise---Type <return> to continue, or q <return> to quit---
Mode)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) (this=0x735b9c0,
    f=@0x735b9b8: 0x1dc688c <impala::Thread::SuperviseThread(std::string 
const&, std::string const&, boost::function<void ()>, impala::ThreadDebugInfo 
const*, impala::Promise<long, (impala::PromiseMode)0>*)>,
    a=...) at 
/opt/Impala-Toolchain/boost-1.57.0-p3/include/boost/bind/bind.hpp:525
#25 0x0000000001dcfcef in 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::Threa
{noformat}

{noformat}
Thread 2 (Thread 0x7f310ed448c0 (LWP 2994)):
#0  0x00007f310b0433b5 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f310baa89e8 in std::string::compare(std::string const&) const () 
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2  0x00000000019a780d in std::operator< <char, std::char_traits<char>, 
std::allocator<char> > (__lhs=..., __rhs=...)
    at 
/home/tarmstrong/Impala/incubator-impala/toolchain/gcc-4.9.2/include/c++/4.9.2/bits/basic_string.h:2590

#3  0x00000000019a5cef in std::less<std::string>::operator() (this=0x66711c0 
<impala::MetricDefs::GetInstance()::instance>, __x=..., __y=...)
    at 
/home/tarmstrong/Impala/incubator-impala/toolchain/gcc-4.9.2/include/c++/4.9.2/bits/stl_function.h:371
#4  0x0000000001d6e0ba in std::_Rb_tree<std::string, std::pair<std::string 
const, impala::TMetricDef>, std::_Select1st<std::pair<std::string const, 
impala::TMetricDef> >, std::less<std::string>, std::allocator<st
d::pair<std::string const, impala::TMetricDef> > >::_M_lower_bound 
(this=0x66711c0 <impala::MetricDefs::GetInstance()::instance>, __x=0x745de30, 
__y=0x745df80, __k=...)
    at 
/home/tarmstrong/Impala/incubator-impala/toolchain/gcc-4.9.2/include/c++/4.9.2/bits/stl_tree.h:1261
#5  0x0000000001d6d0bb in std::_Rb_tree<std::string, std::pair<std::string 
const, impala::TMetricDef>, std::_Select1st<std::pair<std::string const, 
impala::TMetricDef> >, std::less<std::string>, std::allocator<st
d::pair<std::string const, impala::TMetricDef> > >::find (this=0x66711c0 
<impala::MetricDefs::GetInstance()::instance>, __k=...)
    at 
/home/tarmstrong/Impala/incubator-impala/toolchain/gcc-4.9.2/include/c++/4.9.2/bits/stl_tree.h:1913
#6  0x0000000001d6c521 in std::map<std::string, impala::TMetricDef, 
std::less<std::string>, std::allocator<std::pair<std::string const, 
impala::TMetricDef> > >::find (
    this=0x66711c0 <impala::MetricDefs::GetInstance()::instance>, __x=...) at 
/home/tarmstrong/Impala/incubator-impala/toolchain/gcc-4.9.2/include/c++/4.9.2/bits/stl_map.h:860
#7  0x0000000001d6a65c in impala::MetricDefs::Get (key=..., arg=...) at 
be/src/util/metrics.cc:70
---Type <return> to continue, or q <return> to quit---
#8  0x0000000001aa367c in impala::MetricGroup::AddGauge (this=0x7322000, 
key=..., value=0, metric_def_arg=...) at be/src/util/metrics.h:324
#9  0x0000000003250fce in impala::ThriftServer::ThriftServer (this=0x7339320, 
name=..., processor=..., port=0, auth_provider=0x0, metrics=0x7322000, 
max_concurrent_connections=0)
    at be/src/rpc/thrift-server.cc:342
#10 0x0000000001c1c5dc in impala::ThriftServerBuilder::Build 
(this=0x7ffcaa2e2620, server=0x7ffcaa2e2688) at be/src/rpc/thrift-server.h:304
#11 0x0000000001cdd17c in impala::Statestore::Init (this=0x7457600, 
state_store_port=0) at be/src/statestore/statestore.cc:471
#12 0x0000000001966f38 in impala::StatestoreSslTest_SmokeTest_Test::TestBody 
(this=0x7438030) at be/src/statestore/statestore-test.cc:81
#13 0x000000000459d1d3 in void 
testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, 
void>(testing::Test*, void (testing::Test::*)(), char const*) ()
#14 0x0000000004593f6a in testing::Test::Run() ()
#15 0x00000000045940b8 in testing::TestInfo::Run() ()
#16 0x0000000004594195 in testing::TestCase::Run() ()
#17 0x0000000004595418 in testing::internal::UnitTestImpl::RunAllTests() ()
#18 0x00000000045956f3 in testing::UnitTest::Run() ()
#19 0x0000000001967da9 in main (argc=2, argv=0x7ffcaa2e32d8) at 
be/src/statestore/statestore-test.cc:105

{noformat}

> StatestoreSslTest crashed with mutex lock failed in pthread_mutex_lock: 
> Invalid argument
> ----------------------------------------------------------------------------------------
>
>                 Key: IMPALA-7775
>                 URL: https://issues.apache.org/jira/browse/IMPALA-7775
>             Project: IMPALA
>          Issue Type: Bug
>          Components: Backend
>    Affects Versions: Impala 3.1.0
>            Reporter: Tim Armstrong
>            Priority: Critical
>              Labels: broken-build
>
> {noformat}
> 20:17:28 [==========] Running 2 tests from 2 test cases.
> 20:17:28 [----------] Global test environment set-up.
> 20:17:28 [----------] 1 test from StatestoreTest
> 20:17:28 [ RUN      ] StatestoreTest.SmokeTest
> 20:17:28 [       OK ] StatestoreTest.SmokeTest (24 ms)
> 20:17:28 [----------] 1 test from StatestoreTest (24 ms total)
> 20:17:28 
> 20:17:28 [----------] 1 test from StatestoreSslTest
> 20:17:28 [ RUN      ] StatestoreSslTest.SmokeTest
> 20:17:28 terminate called after throwing an instance of 
> 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error>
>  >'
> 20:17:28   what():  boost: mutex lock failed in pthread_mutex_lock: Invalid 
> argument
> 20:17:28 Wrote minidump to 
> /home/ubuntu/Impala/logs/be_tests/minidumps/statestore-test/63ff46ee-a127-4ef6-5bccb5ba-dc73c28a.dmp
> 20:17:28 Wrote minidump to 
> /home/ubuntu/Impala/logs/be_tests/minidumps/statestore-test/63ff46ee-a127-4ef6-5bccb5ba-dc73c28a.dmp
> 20:17:28 
> {noformat}
> https://jenkins.impala.io/job/ubuntu-16.04-from-scratch/3441
> This smells like a lifecycle bug in the backend test.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to