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

Enis Soztutar commented on HBASE-18565:
---------------------------------------

Attaching to the process using gdb reveals these stack traces: 
A lot of threads are in trying to acquire the mutex for the rpc-connection like 
this:
{code}
Thread 10 (Thread 0x7febf1ffb700 (LWP 6210)):
#0  0x00007fec0eea81bd in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x00007fec0eea3d1d in _L_lock_840 () from /lib64/libpthread.so.0
#2  0x00007fec0eea3c3a in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00007fec135fe083 in __gthread_mutex_lock (__mutex=0x7febec001a58) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/x86_64-redhat-linux/bits/gthr-default.h:748
#4  0x00007fec135fe0d3 in __gthread_recursive_mutex_lock 
(__mutex=0x7febec001a58) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/x86_64-redhat-linux/bits/gthr-default.h:810
#5  0x00007fec135feb56 in std::recursive_mutex::lock (this=0x7febec001a58) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/mutex:105
#6  0x00007fec136005c6 in std::lock_guard<std::recursive_mutex>::lock_guard 
(this=0x7febf1ff9800, __m=...) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/bits/std_mutex.h:162
#7  0x00007fec135ff9e0 in hbase::RpcConnection::SendRequest 
(this=0x7febec001a40, req=std::unique_ptr<hbase::Request> containing 
0x7feb9c01e300) at ./connection/rpc-connection.h:43
#8  0x00007fec135bfca0 in hbase::RpcClient::SendRequest (this=0xa6f890, 
remote_id=std::shared_ptr (count 3, weak 0) 0x7feb9c025f40, 
req=std::unique_ptr<hbase::Request> containing 0x0)
    at connection/rpc-client.cc:85
#9  0x00007fec135bf85c in hbase::RpcClient::AsyncCall (this=0xa6f890, 
host="localhost", port=42985, req=std::unique_ptr<hbase::Request> containing 
0x0, 
    ticket=std::shared_ptr (count 3, weak 0) 0x7feb9c01e1c0, 
service_name="ClientService") at connection/rpc-client.cc:71
Python Exception <class 'gdb.error'> There is no member or method named 
_M_bbegin.: 
#10 0x00007fec1370e1b1 in hbase::AsyncBatchRpcRetryingCaller::GetMultiResponse 
(this=0x7feb9c0036c0, actions_by_server=std::unordered_map with 1 elements) at 
core/async-batch-rpc-retrying-caller.cc:313
Python Exception <class 'gdb.error'> There is no member or method named 
_M_bbegin.: 
#11 0x00007fec1370f048 in hbase::AsyncBatchRpcRetryingCaller::Send 
(this=0x7feb9c0036c0, actions_by_server=std::unordered_map with 1 elements, 
tries=1) at core/async-batch-rpc-retrying-caller.cc:343
#12 0x00007fec1370d819 in 
hbase::AsyncBatchRpcRetryingCaller::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > 
>&)>::operator()(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
>, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > &) 
const (__closure=0x7feb9c001790, 
    loc=std::vector of length 100, capacity 100 = {...}) at 
core/async-batch-rpc-retrying-caller.cc:283
#13 0x00007fec137112d0 in folly::detail::CoreCallbackState<folly::Unit, 
hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
>, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&)> 
>::invoke<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > 
>&>(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > &) 
(this=0x7feb9c001790, args#0=std::vector of length 100, capacity 100 = {...}) 
at /usr/local/include/folly/futures/Future-inl.h:85
#14 0x00007fec13711309 in 
folly::Future<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::<lambda(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>&&)>::<lambda()>::operator()(void) const (__closure=0x7febf1ffa1a0)
    at /usr/local/include/folly/futures/Future-inl.h:243
#15 0x00007fec13712520 in 
folly::makeTryWith<folly::Future<T>::thenImplementation(F&&, 
folly::detail::argResult<isTry, F, Args ...>)::<lambda(folly::Try<T>&&)> 
mutable [with F = hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)>; R = 
folly::detail::callableResult<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > >, hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >; bool isTry = false; Args = 
{std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&}; T = 
std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> > >]::<lambda()> 
>(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbd8453>) (
    f=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbd8453>) at /usr/local/include/folly/Try-inl.h:165
#16 0x00007fec1371137b in 
folly::Future<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::<lambda(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>&&)>::operator()(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 
0xb0d6f8, DIE 0xba6a18>) (__closure=0x7feb9c001790, t=<unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 0xba6a18>) at 
/usr/local/include/folly/futures/Future-inl.h:242
#17 0x00007fec13713f57 in 
folly::detail::function::FunctionTraits<void(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>&&)>::callBig<folly::Future<T>::thenImplementation(F&&, 
folly::detail::argResult<isTry, F, Args ...>) [with F = 
hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)>; R = 
folly::detail::callableResult<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > >, hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >; bool isTry = false; Args = 
{std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&}; T = 
std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> > 
>]::<lambda(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > > >&&)> >(folly::detail::function::Data &, <unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 0xba6a18>) (p=..., 
args#0=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xba6a18>) at /usr/local/include/folly/Function.h:305
#18 0x00007fec1372a0bc in folly::detail::function::FunctionTraits<void 
(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>&&)>::operator()(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > >&&) 
(
    this=0x7feb9c019e90, args#0=<unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 0xba6a18>) at 
/usr/local/include/folly/Function.h:314
#19 0x00007fec1372759d in 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::doCallback (
    this=0x7feb9c019e90) at /usr/local/include/folly/futures/detail/Core.h:388
#20 0x00007fec13724051 in 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback()::{lambda()#2}::operator()() const (__closure=0x7febf1ffa4c0) 
at /usr/local/include/folly/futures/detail/Core.h:317
#21 0x00007fec1372781e in 
folly::detail::FSM<folly::detail::State>::updateState<folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback()::{lambda()#1}, 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback()::{lambda()#2}>(folly::detail::State, folly::detail::State, 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback()::{lambda()#1} const&, 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback()::{lambda()#2} const&) (this=0x7feb9c019ef8, 
A=folly::detail::Armed, B=folly::detail::Done, protectedAction=..., 
    unprotectedAction=...) at /usr/local/include/folly/futures/detail/FSM.h:100
#22 0x00007fec137240cc in 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback (
    this=0x7feb9c019e90) at /usr/local/include/folly/futures/detail/Core.h:317
#23 0x00007fec1371319b in 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::setCallback<folly::Future<T>::thenImplementation(F&&, 
folly::detail::argResult<isTry, F, Args ...>) [with F = 
hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)>; R = 
folly::detail::callableResult<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > >, hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >; bool isTry = false; Args = 
{std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&}; T = 
std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> > 
>]::<lambda(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > > >&&)> >(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, 
DIE 0xbd000a>) (
    this=0x7feb9c019e90, func=<unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 0xbd000a>) at 
/usr/local/include/folly/futures/detail/Core.h:158
#24 0x00007fec137126d9 in 
folly::Future<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::setCallback_<folly::Future<T>::thenImplementation(F&&, 
folly::detail::argResult<isTry, F, Args ...>) [with F = 
hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)>; R = 
folly::detail::callableResult<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > >, hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >; bool isTry = false; Args = 
{std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&}; T = 
std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> > 
>]::<lambda(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > > >&&)> >(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, 
DIE 0xbd839c>) (this=0x7febf1ffa700, 
    func=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbd839c>) at /usr/local/include/folly/futures/Future-inl.h:172
#25 0x00007fec13711509 in 
folly::Future<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::thenImplementation<hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)>, 
folly::detail::callableResult<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > >, hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(sred_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
>, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&)>, 
std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&>) 
(this=0x7febf1ffa700, 
    func=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbe0d1b>) at /usr/local/include/folly/futures/Future-inl.h:236
#26 0x00007fec137109de in 
folly::Future<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::then<hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbe840e>) (this=0x7febf1ffa700, func=<unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 0xbe840e>)
    at /usr/local/include/folly/futures/Future.h:183
#27 0x00007fec1370df37 in hbase::AsyncBatchRpcRetryingCaller::GroupAndSend 
(this=0x7feb9c0036c0, actions=std::vector of length 100, capacity 128 = {...}, 
tries=1)
    at core/async-batch-rpc-retrying-caller.cc:242
#28 0x00007fec1370b328 in hbase::AsyncBatchRpcRetryingCaller::Call 
(this=0x7feb9c0036c0) at core/async-batch-rpc-retrying-caller.cc:70
#29 0x00007fec13732c33 in hbase::RawAsyncTable::Batch (this=0x7feb9c000980, 
gets=std::vector of length 100, capacity 128 = {...}) at 
core/raw-async-table.cc:218
#30 0x00007fec137328a1 in hbase::RawAsyncTable::Get (this=0x7feb9c000980, 
gets=std::vector of length 100, capacity 128 = {...}) at 
core/raw-async-table.cc:202
#31 0x00007fec137036a9 in hbase::Table::Get (this=0x7feb9c0008c0, 
gets=std::vector of length 100, capacity 128 = {...}) at core/table.cc:120
#32 0x000000000042e328 in DoGet (iteration=1, max_row=19999, rows=2000, 
table=std::unique_ptr<hbase::Table> containing 0x7feb9c0008c0, 
families=std::vector of length 1, capacity 1 = {...}, 
    batch_num_rows=100) at core/load-client.cc:186
#33 0x000000000042faab in <lambda()>::operator()(void) const 
(__closure=0xaa34f8) at core/load-client.cc:375
#34 0x0000000000432428 in std::_Bind_simple<main(int, 
char**)::<lambda()>()>::_M_invoke<>(std::_Index_tuple<>) (this=0xaa34f8) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/functional:1400
#35 0x0000000000432359 in std::_Bind_simple<main(int, 
char**)::<lambda()>()>::operator()(void) (this=0xaa34f8) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/functional:1389
#36 0x00000000004322d8 in std::thread::_State_impl<std::_Bind_simple<main(int, 
char**)::<lambda()>()> >::_M_run(void) (this=0xaa34f0) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/thread:196
#37 0x00007fec139c3aff in execute_native_thread_routine () from 
/usr/local/lib/libHbaseClient_d.so
#38 0x00007fec0eea1dc5 in start_thread () from /lib64/libpthread.so.0
#39 0x00007fec0ebd073d in clone () from /lib64/libc.so.6
{code}

One thread has the lock, but waits for another lock: 
{code}
Thread 11 (Thread 0x7febf17fa700 (LWP 6209)):
#0  0x00007fec0eea56d5 in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib64/libpthread.so.0
#1  0x00007fec0f67f9ec in 
std::condition_variable::wait(std::unique_lock<std::mutex>&) () from 
/lib64/libstdc++.so.6
#2  0x00007fec123d056b in 
wait<folly::EventBase::runInEventBaseThreadAndWait(folly::EventBase::FuncRef)::<lambda()>
 > (__p=..., __lock=..., this=0x7febf17f7fd0)
    at /opt/rh/devtoolset-4/root/usr/include/c++/5.2.1/condition_variable:98
#3  folly::EventBase::runInEventBaseThreadAndWait(folly::FunctionRef<void ()>) 
(this=<optimized out>, fn=...) at io/async/EventBase.cpp:573
#4  0x00007fec135da453 in wangle::EventBaseHandler::write (this=0x7febd0001f20, 
ctx=0x7febd0001f50, buf=std::unique_ptr<folly::IOBuf> containing 0x7febb001b048)
    at /usr/local/include/wangle/channel/EventBaseHandler.h:25
#5  0x00007fec135f8eb4 in 
wangle::OutboundContextImpl<wangle::EventBaseHandler>::write 
(this=0x7febd0001f50, msg=std::unique_ptr<folly::IOBuf> containing 0x0)
    at /usr/local/include/wangle/channel/HandlerContext-inl.h:477
#6  0x00007fec1361e18b in wangle::ContextImpl<hbase::SaslHandler>::fireWrite 
(this=0x7febd00020c0, msg=std::unique_ptr<folly::IOBuf> containing 0x0)
    at /usr/local/include/wangle/channel/HandlerContext-inl.h:207
#7  0x00007fec13615850 in hbase::SaslHandler::write (this=0x7febd0002040, 
ctx=0x7febd00020c0, buf=std::unique_ptr<folly::IOBuf> containing 0x0) at 
connection/sasl-handler.cc:119
#8  0x00007fec1361e89e in wangle::ContextImpl<hbase::SaslHandler>::write 
(this=0x7febd00020c0, msg=std::unique_ptr<folly::IOBuf> containing 0x0)
    at /usr/local/include/wangle/channel/HandlerContext-inl.h:290
#9  0x00007fec1361d0d7 in wangle::ContextImpl<hbase::ClientHandler>::fireWrite 
(this=0x7febd000c2c0, msg=std::unique_ptr<folly::IOBuf> containing 0x0)
    at /usr/local/include/wangle/channel/HandlerContext-inl.h:207
#10 0x00007fec13605cc8 in hbase::ClientHandler::write (this=0x7febd000c240, 
ctx=0x7febd000c2c0, r=std::unique_ptr<hbase::Request> containing 
0x7febb0012470) at connection/client-handler.cc:138
#11 0x00007fec1361d814 in wangle::ContextImpl<hbase::ClientHandler>::write 
(this=0x7febd000c2c0, msg=std::unique_ptr<hbase::Request> containing 0x0)
    at /usr/local/include/wangle/channel/HandlerContext-inl.h:290
#12 0x00007fec1362fb4d in 
wangle::ContextImpl<wangle::ClientDispatcherBase<wangle::Pipeline<folly::IOBufQueue&,
 std::unique_ptr<hbase::Request, std::default_delete<hbase::Request> > >, 
std::unique_ptr<hbase::Request, std::default_delete<hbase::Request> >, 
std::unique_ptr<hbase::Response, std::default_delete<hbase::Response> > > 
>::fireWrite (this=0x7febec0010f0, 
    msg=std::unique_ptr<hbase::Request> containing 0x0) at 
/usr/local/include/wangle/channel/HandlerContext-inl.h:207
#13 0x00007fec13614a1d in 
wangle::HandlerAdapter<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> >, std::unique_ptr<hbase::Request, 
std::default_delete<hbase::Request> > >::write
    (this=0x7febec001e00, ctx=0x7febec0010f0, 
msg=std::unique_ptr<hbase::Request> containing 0x0) at 
/usr/local/include/wangle/channel/Handler.h:162
#14 0x00007fec1363028a in 
wangle::ContextImpl<wangle::ClientDispatcherBase<wangle::Pipeline<folly::IOBufQueue&,
 std::unique_ptr<hbase::Request, std::default_delete<hbase::Request> > >, 
std::unique_ptr<hbase::Request, std::default_delete<hbase::Request> >, 
std::unique_ptr<hbase::Response, std::default_delete<hbase::Response> > > 
>::write (this=0x7febec0010f0, 
    msg=std::unique_ptr<hbase::Request> containing 0x0) at 
/usr/local/include/wangle/channel/HandlerContext-inl.h:290
#15 0x00007fec1360d403 in wangle::Pipeline<folly::IOBufQueue&, 
std::unique_ptr<hbase::Request, std::default_delete<hbase::Request> > 
>::write<std::unique_ptr<hbase::Request, std::default_delete<hbase::R#17 
0x00007fec135ffb35 in hbase::RpcConnection::SendRequest (this=0x7febec001a40, 
req=std::unique_ptr<hbase::Request> containing 0x0) at 
./connection/rpc-connection.h:48
#18 0x00007fec135bfca0 in hbase::RpcClient::SendRequest (this=0xa6f890, 
remote_id=std::shared_ptr (count 3, weak 0) 0x7febb001a050, 
req=std::unique_ptr<hbase::Request> containing 0x0)
    at connection/rpc-client.cc:85
#19 0x00007fec135bf85c in hbase::RpcClient::AsyncCall (this=0xa6f890, 
host="localhost", port=42985, req=std::unique_ptr<hbase::Request> containing 
0x0, 
    ticket=std::shared_ptr (count 3, weak 0) 0x7febb0012330, 
service_name="ClientService") at connection/rpc-client.cc:71
Python Exception <class 'gdb.error'> There is no member or method named 
_M_bbegin.: 
#20 0x00007fec1370e1b1 in hbase::AsyncBatchRpcRetryingCaller::GetMultiResponse 
(this=0x7febb0026820, actions_by_server=std::unordered_map with 1 elements) at 
core/async-batch-rpc-retrying-caller.cc:313
Python Exception <class 'gdb.error'> There is no member or method named 
_M_bbegin.: 
#21 0x00007fec1370f048 in hbase::AsyncBatchRpcRetryingCaller::Send 
(this=0x7febb0026820, actions_by_server=std::unordered_map with 1 elements, 
tries=1) at core/async-batch-rpc-retrying-caller.cc:343
#22 0x00007fec1370d819 in 
hbase::AsyncBatchRpcRetryingCaller::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > 
>&)>::operator()(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
>, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > &) 
const (__closure=0x7febb00027b0, 
    loc=std::vector of length 100, capacity 100 = {...}) at 
core/async-batch-rpc-retrying-caller.cc:283
#23 0x00007fec137112d0 in folly::detail::CoreCallbackState<folly::Unit, 
hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
>, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&)> 
>::invoke<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > 
>&>(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > &) 
(this=0x7febb00027b0, args#0=std::vector of length 100, capacity 100 = {...}) 
at /usr/local/include/folly/futures/Future-inl.h:85
#24 0x00007fec13711309 in 
folly::Future<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::<lambda(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>&&)>::<lambda()>::operator()(void) const (__closure=0x7febf17f91a0)
    at /usr/local/include/folly/futures/Future-inl.h:243
#25 0x00007fec13712520 in 
folly::makeTryWith<folly::Future<T>::thenImplementation(F&&, 
folly::detail::argResult<isTry, F, Args ...>)::<lambda(folly::Try<T>&&)> 
mutable [with F = hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)>; R = 
folly::detail::callableResult<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > >, hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >; bool isTry = false; Args = 
{std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&}; T = 
std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> > >]::<lambda()> 
>(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbd8453>) (
    f=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbd8453>) at /usr/local/include/folly/Try-inl.h:165
#26 0x00007fec1371137b in 
folly::Future<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::<lambda(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>&&)>::operator()(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 
0xb0d6f8, DIE 0xba6a18>) (__closure=0x7febb00027b0, t=<unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 0xba6a18>) at 
/usr/local/include/folly/futures/Future-inl.h:242
#27 0x00007fec13713f57 in 
folly::detail::function::FunctionTraits<void(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>&&)>::callBig<folly::Future<T>::thenImplementation(F&&, 
folly::detail::argResult<isTry, F, Args ...>) [with F = 
hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)>; R = 
folly::detail::callableResult<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > >, hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >; bool isTry = false; Args = 
{std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&}; T = 
std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> > 
>]::<lambda(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > > >&&)> >(folly::detail::function::Data &, <unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 0xba6a18>) (p=..., 
args#0=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xba6a18>) at /usr/local/include/folly/Function.h:305
#28 0x00007fec1372a0bc in folly::detail::function::FunctionTraits<void 
(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>&&)>::operator()(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > >&&) 
(
    this=0x7febb0024af0, args#0=<unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 0xba6a18>) at 
/usr/local/include/folly/Function.h:314
#29 0x00007fec1372759d in 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::doCallback (
    this=0x7febb0024af0) at /usr/local/include/folly/futures/detail/Core.h:388
#30 0x00007fec13724051 in 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback()::{lambda()#2}::operator()() const (__closure=0x7febf17f94c0) 
at /usr/local/include/folly/futures/detail/Core.h:317
#31 0x00007fec1372781e in 
folly::detail::FSM<folly::detail::State>::updateState<folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback()::{lambda()#1}, 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback()::{lambda()#2}>(folly::detail::State, folly::detail::State, 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback()::{lambda()#1} const&, 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback()::{lambda()#2} const&) (this=0x7febb0024b58, 
A=folly::detail::Armed, B=folly::detail::Done, protectedAction=..., 
    unprotectedAction=...) at /usr/local/include/folly/futures/detail/FSM.h:100
#32 0x00007fec137240cc in 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::maybeCallback (
    this=0x7febb0024af0) at /usr/local/include/folly/futures/detail/Core.h:317
#33 0x00007fec1371319b in 
folly::detail::Core<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 >, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::setCallback<folly::Future<T>::thenImplementation(F&&, 
folly::detail::argResult<isTry, F, Args ...>) [with F = 
hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)>; R = 
folly::detail::callableResult<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > >, hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >; bool isTry = false; Args = 
{std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&}; T = 
std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>#34 
0x00007fec137126d9 in 
folly::Future<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::setCallback_<folly::Future<T>::thenImplementation(F&&, 
folly::detail::argResult<isTry, F, Args ...>) [with F = 
hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)>; R = 
folly::detail::callableResult<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > >, hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >; bool isTry = false; Args = 
{std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&}; T = 
std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> > 
>]::<lambda(folly::Try<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > > >&&)> >(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, 
DIE 0xbd839c>) (this=0x7febf17f9700, 
    func=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbd839c>) at /usr/local/include/folly/futures/Future-inl.h:172
#35 0x00007fec13711509 in 
folly::Future<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::thenImplementation<hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)>, 
folly::detail::callableResult<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation>
 > >, hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >, false, std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
>, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > 
>&>(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbe0d1b>, folly::detail::argResult<false, 
hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
>, std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&)>, 
std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > >&>) 
(this=0x7febf17f9700, 
    func=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbe0d1b>) at /usr/local/include/folly/futures/Future-inl.h:236
#36 0x00007fec137109de in 
folly::Future<std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> >, 
std::allocator<folly::Try<std::shared_ptr<hbase::RegionLocation> > > > 
>::then<hbase::AsyncBatchRpcRetryingCaller::GroupAndSend(const 
std::vector<std::shared_ptr<hbase::Action> >&, 
int32_t)::<lambda(std::vector<folly::Try<std::shared_ptr<hbase::RegionLocation> 
> >&)> >(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 
0xbe840e>) (this=0x7febf17f9700, func=<unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0xb0d6f8, DIE 0xbe840e>)
    at /usr/local/include/folly/futures/Future.h:183
#37 0x00007fec1370df37 in hbase::AsyncBatchRpcRetryingCaller::GroupAndSend 
(this=0x7febb0026820, actions=std::vector of length 100, capacity 128 = {...}, 
tries=1)
    at core/async-batch-rpc-retrying-caller.cc:242
#38 0x00007fec1370b328 in hbase::AsyncBatchRpcRetryingCaller::Call 
(this=0x7febb0026820) at core/async-batch-rpc-retrying-caller.cc:70
#39 0x00007fec13732c33 in hbase::RawAsyncTable::Batch (this=0x7febb0000980, 
gets=std::vector of length 100, capacity 128 = {...}) at 
core/raw-async-table.cc:218
#40 0x00007fec137328a1 in hbase::RawAsyncTable::Get (this=0x7febb0000980, 
gets=std::vector of length 100, capacity 128 = {...}) at 
core/raw-async-table.cc:202
#41 0x00007fec137036a9 in hbase::Table::Get (this=0x7febb00008c0, 
gets=std::vector of length 100, capacity 128 = {...}) at core/table.cc:120
#42 0x000000000042e328 in DoGet (iteration=0, max_row=19999, rows=2000, 
table=std::unique_ptr<hbase::Table> containing 0x7febb00008c0, 
families=std::vector of length 1, capacity 1 = {...}, 
    batch_num_rows=100) at core/load-client.cc:186
#43 0x000000000042faab in <lambda()>::operator()(void) const 
(__closure=0xaa37d8) at core/load-client.cc:375
#44 0x0000000000432428 in std::_Bind_simple<main(int, 
char**)::<lambda()>()>::_M_invoke<>(std::_Index_tuple<>) (this=0xaa37d8) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/functional:1400
#45 0x0000000000432359 in std::_Bind_simple<main(int, 
char**)::<lambda()>()>::operator()(void) (this=0xaa37d8) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/functional:1389
#46 0x00000000004322d8 in std::thread::_State_impl<std::_Bind_simple<main(int, 
char**)::<lambda()>()> >::_M_run(void) (this=0xaa37d0) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/thread:196
#47 0x00007fec139c3aff in execute_native_thread_routine () from 
/usr/local/lib/libHbaseClient_d.so
#48 0x00007fec0eea1dc5 in start_thread () from /lib64/libpthread.so.0
#49 0x00007fec0ebd073d in clone () from /lib64/libc.so.6
{code}

and yet some other thread from the scanner has those locks in reverse order:
{code}
Thread 17 (Thread 0x7fec017fa700 (LWP 6183)):
#0  0x00007fec0eea81bd in __lll_lock_wait () from /lib64/libpthread.so.0
#1  0x00007fec0eea3d1d in _L_lock_840 () from /lib64/libpthread.so.0
#2  0x00007fec0eea3c3a in pthread_mutex_lock () from /lib64/libpthread.so.0
#3  0x00007fec135fe083 in __gthread_mutex_lock (__mutex=0x7febec001a58) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/x86_64-redhat-linux/bits/gthr-default.h:748
#4  0x00007fec135fe0d3 in __gthread_recursive_mutex_lock 
(__mutex=0x7febec001a58) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/x86_64-redhat-linux/bits/gthr-default.h:810
#5  0x00007fec135feb56 in std::recursive_mutex::lock (this=0x7febec001a58) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/mutex:105
#6  0x00007fec136005c6 in std::lock_guard<std::recursive_mutex>::lock_guard 
(this=0x7fec017f7f10, __m=...) at 
/opt/rh/devtoolset-6/root/usr/include/c++/6.2.1/bits/std_mutex.h:162
#7  0x00007fec135ff9e0 in hbase::RpcConnection::SendRequest 
(this=0x7febec001a40, req=std::unique_ptr<hbase::Request> containing 
0x7febd16ae450) at ./connection/rpc-connection.h:43
#8  0x00007fec135bfca0 in hbase::RpcClient::SendRequest (this=0xa6f890, 
remote_id=std::shared_ptr (count 3, weak 0) 0x7febd16ae390, 
req=std::unique_ptr<hbase::Request> containing 0x0)
    at connection/rpc-client.cc:85
#9  0x00007fec135bf85c in hbase::RpcClient::AsyncCall (this=0xa6f890, 
host="localhost", port=42985, req=std::unique_ptr<hbase::Request> containing 
0x0, 
    ticket=std::shared_ptr (count 2, weak 0) 0x7febd0af9fc0, 
service_name="ClientService") at connection/rpc-client.cc:71
#10 0x00007fec136cd6ca in hbase::AsyncScanRpcRetryingCaller::Call 
(this=0x7febd00011a0) at core/async-scan-rpc-retrying-caller.cc:406
#11 0x00007fec136cd17d in hbase::AsyncScanRpcRetryingCaller::Next 
(this=0x7febd00011a0) at core/async-scan-rpc-retrying-caller.cc:376
#12 0x00007fec136cba78 in hbase::AsyncScanRpcRetryingCaller::CompleteOrNext 
(this=0x7febd00011a0, resp=std::shared_ptr (count 5, weak 0) 0x7febd0247930) at 
core/async-scan-rpc-retrying-caller.cc:241
#13 0x00007fec136cb60f in hbase::AsyncScanRpcRetryingCaller::OnComplete 
(this=0x7febd00011a0, controller=std::shared_ptr (count 2, weak 0) 
0x7febd0214ae0, 
    resp=std::shared_ptr (count 5, weak 0) 0x7febd0247930, 
cell_scanner=std::shared_ptr (count 2, weak 0) 0x7febd023e690) at 
core/async-scan-rpc-retrying-caller.cc:222
#14 0x00007fec136cd269 in hbase::AsyncScanRpcRetryingCaller::<lambda(const 
std::unique_ptr<hbase::Response, std::default_delete<hbase::Response> 
>&)>::operator()(const std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > &) const (__closure=0x7febd0245890, 
resp=std::unique_ptr<hbase::Response> containing 0x7febd0b09650) at 
core/async-scan-rpc-retrying-caller.cc:411
#15 0x00007fec136cec8e in folly::detail::CoreCallbackState<folly::Unit, 
hbase::AsyncScanRpcRetryingCaller::Call()::<lambda(const 
std::unique_ptr<hbase::Response, std::default_delete<hbase::Response> >&)> 
>::invoke<std::unique_ptr<hbase::Response, std::default_delete<hbase::Response> 
> >(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0x86df39, DIE 
0x8d2aaa>) (this=0x7febd0245890, 
    args#0=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0x86df39, 
DIE 0x8d2aaa>) at /usr/local/include/folly/futures/Future-inl.h:85
#16 0x00007fec136cecc7 in folly::Future<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::<lambda(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >&&)>::<lambda()>::operator()(void) 
const (__closure=0x7fec017f8730) at 
/usr/local/include/folly/futures/Future-inl.h:243
#17 0x00007fec136cfa96 in 
folly::makeTryWith<folly::Future<T>::thenImplementation(F&&, 
folly::detail::argResult<isTry, F, Args ...>)::<lambda(folly::Try<T>&&)> 
mutable [with F = hbase::AsyncScanRpcRetryingCaller::Call()::<lambda(const 
std::unique_ptr<hbase::Response>&)>; R = 
folly::detail::callableResult<std::unique_ptr<hbase::Response>, 
hbase::AsyncScanRpcRetryingCaller::Call()::<lambda(const 
std::unique_ptr<hbase::Response>&)> >; bool isTry = false; Args = 
{std::unique_ptr<hbase::Response, std::default_delete<hbase::Response> >&&}; T 
= std::unique_ptr<hbase::Response>]::<lambda()> >(<unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0x86df39, DIE 0x8e66f0>) (f=<unknown 
type in /usr/local/lib/libHbaseClient_d.so, CU 0x86df39, DIE 0x8e66f0>) at 
/usr/local/include/folly/Try-inl.h:165
#18 0x00007fec136ced39 in folly::Future<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::<lambda(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >&&)>::operator()(<unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0x86df39, DIE 0x8d3c22>) 
(__closure=0x7febd0245890, 
    t=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0x86df39, DIE 
0x8d3c22>) at /usr/local/include/folly/futures/Future-inl.h:242
#19 0x00007fec136d0bd6 in 
folly::detail::function::FunctionTraits<void(folly::Try<std::unique_ptr<hbase::Response,
 std::default_delete<hbase::Response> > 
>&&)>::callSmall<folly::Future<T>::thenImplementation(F&&, 
folly::detail::argResult<isTry, F, Args ...>) [with F = 
hbase::AsyncScanRpcRetryingCaller::Call()::<lambda(const 
std::unique_ptr<hbase::Response>&)>; R = 
folly::detail::callableResult<std::unique_ptr<hbase::Response>, 
hbase::AsyncScanRpcRetryingCaller::Call()::<lambda(const 
std::unique_ptr<hbase::Response>&)> >; bool isTry = false; Args = 
{std::unique_ptr<hbase::Response, std::default_delete<hbase::Response> >&&}; T 
= 
std::unique_ptr<hbase::Response>]::<lambda(folly::Try<std::unique_ptr<hbase::Response>
 >&&)> >(folly::detail::function::Data &, <unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0x86df39, DIE 0x8d3c22>) (p=..., 
args#0=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0x86df39, DIE 
0x8d3c22>) at /usr/local/include/folly/Function.h:299
#20 0x00007fec135cc402 in folly::detail::function::FunctionTraits<void 
(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>&&)>::operator()(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >&&) (this=0x7febd0245890, 
args#0=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0x45953, DIE 
0xa1de0>)
    at /usr/local/include/folly/Function.h:314
#21 0x00007fec135cab03 in folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >::doCallback (this=0x7febd0245890)
    at /usr/local/include/folly/futures/detail/Core.h:388
#22 0x00007fec135c898b in folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::maybeCallback()::{lambda()#2}::operator()() const (__closure=0x7fec017f8a50)
    at /usr/local/include/folly/futures/detail/Core.h:317
#23 0x00007fec135cad84 in 
folly::detail::FSM<folly::detail::State>::updateState<folly::detail::Core<std::unique_ptr<hbase::Response,
 std::default_delete<hbase::Response> > >::maybeCallback()::{lambda()#1}, 
folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::maybeCallback()::{lambda()#2}>(folly::detail::State, folly::detail::State, 
folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >::maybeCallback()::{lambda()#1} const&, 
folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >::maybeCallback()::{lambda()#2} const&) 
(this=0x7febd02458f8, A=folly::detail::Armed, B=folly::detail::Done, 
protectedAction=..., unprotectedAction=...) at 
/usr/local/include/folly/futures/detail/FSM.h:100
#24 0x00007fec135c8a06 in folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >::maybeCallback (this=0x7febd0245890)
    at /usr/local/include/folly/futures/detail/Core.h:317
#25 0x00007fec135c6f44 in folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::setResult(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >&&) (this=0x7febd0245890, t=<unknown 
type in /usr/local/lib/libHbaseClient_d.so, CU 0x45953, DIE 0xa1de0>) at 
/usr/local/include/folly/futures/detail/Core.h:183
#26 0x00007fec135c68c0 in folly::Promise<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::setTry(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >&&) (this=0x7fec017f8af0, t=<unknown 
type in /usr/local/lib/libHbaseClient_d.so, CU 0x45953, DIE 0xa1de0>) at 
/usr/local/include/folly/futures/Promise-inl.h:121
#27 0x00007fec135c0c4c in 
folly::detail::CoreCallbackState<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> >, 
hbase::RpcClient::SendRequest(std::shared_ptr<hbase::ConnectionId>, 
std::unique_ptr<hbase::Request>)::<lambda(const folly::exception_wrapper&)> 
>::setTry(<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0x45953, DIE 
0xa1de0>) (this=0x7febd0af2a90, 
    t=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0x45953, DIE 
0xa1de0>) at /usr/local/include/folly/futures/Future-inl.h:94
#28 0x00007fec135c05a0 in folly::Future<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::<lambda(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>)>::operator()(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >) (__closure=0x7febd0af2a90, t=...) at 
/usr/local/include/folly/futures/Future-inl.h:424
#29 0x00007fec135c1953 in 
folly::detail::function::FunctionTraits<void(folly::Try<std::unique_ptr<hbase::Response,
 std::default_delete<hbase::Response> > 
>&&)>::callSmall<folly::Future<T>::onError(F&&) [with F = 
hbase::RpcClient::SendRequest(std::shared_ptr<hbase::ConnectionId>, 
std::unique_ptr<hbase::Request>)::<lambda(const folly::exception_wrapper&)>; T 
= 
std::unique_ptr<hbase::Response>]::<lambda(folly::Try<std::unique_ptr<hbase::Response>
 >)> >(folly::detail::function::Data &, <unknown type in 
/usr/local/lib/libHbaseClient_d.so, CU 0x45953, DIE 0xa1de0>) (p=..., 
    args#0=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0x45953, DIE 
0xa1de0>) at /usr/local/include/folly/Function.h:299
#30 0x00007fec135cc402 in folly::detail::function::FunctionTraits<void 
(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>&&)>::operator()(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >&&) (this=0x7febd0af2a90, 
args#0=<unknown type in /usr/local/lib/libHbaseClient_d.so, CU 0x45953, DIE 
0xa1de0>)
    at /usr/local/include/folly/Function.h:314
#31 0x00007fec135cab03 in folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >::doCallback (this=0x7febd0af2a90)
    at /usr/local/include/folly/futures/detail/Core.h:388
#32 0x00007fec135c898b in folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::maybeCallback()::{lambda()#2}::operator()() const (__closure=0x7fec017f8ea0)
    at /usr/local/include/folly/futures/detail/Core.h:317
#33 0x00007fec135cad84 in 
folly::detail::FSM<folly::detail::State>::updateState<folly::detail::Core<std::unique_ptr<hbase::Response,
 std::default_delete<hbase::Response> > >::maybeCallback()::{lambda()#1}, 
folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::maybeCallback()::{lambda()#2}>(folly::detail::State, folly::detail::State, 
folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >::maybeCallback()::{lambda()#1} const&, 
folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >::maybeCallback()::{lambda()#2} const&) 
(this=0x7febd0af2af8, A=folly::detail::Armed, B=folly::detail::Done, 
protectedAction=..., unprotectedAction=...) at 
/usr/local/include/folly/futures/detail/FSM.h:100
#34 0x00007fec135c8a06 in folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >::maybeCallback (this=0x7febd0af2a90)
    at /usr/local/include/folly/futures/detail/Core.h:317
#35 0x00007fec135c6f44 in folly::detail::Core<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::setResult(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >&&) (this=0x7febd0af2a90, t=<unknown 
type in /usr/local/lib/libHbaseClient_d.so, CU 0x45953, DIE 0xa1de0>) at 
/usr/local/include/folly/futures/detail/Core.h:183
#36 0x00007fec135c68c0 in folly::Promise<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::setTry(folly::Try<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >&&) (this=0x7fec017f8fa0, t=<unknown 
type in /usr/local/lib/libHbaseClient_d.so, CU 0x45953, DIE 0xa1de0>) at 
/usr/local/include/folly/futures/Promise-inl.h:121
#37 0x00007fec1360d150 in folly::Promise<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > 
>::setValue<std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> > >(std::unique_ptr<hbase::Response, 
std::default_delete<hbase::Response> >&&) (this=0x7fec017f8fa0, v=<unknown type 
in /usr/local/lib/libHbaseClient_d.so, CU 0x216413, DIE 0x268be9>)
    at /usr/local/include/folly/futures/Promise-inl.h:130
#38 0x00007fec1360b8b4 in hbase::ClientDispatcher::read (this=0x7febec001e00, 
ctx=0x7febec0010f0, in=std::unique_ptr<hbase::Response> containing 0x0) at 
connection/client-dispatcher.cc:49
#39 0x00007fec1362ff72 in 
wangle::ContextImpl<wangle::ClientDispatcherBase<wangle::Pipeline<folly::IOBufQueue&,
 std::unique_ptr<hbase::Request, std::default_delete<hbase::Request> > >, 
std::unique_ptr<hbase::Request, std::default_delete<hbase::Request> >, 
std::unique_ptr<hbase::Response, std::default_delete<hbase::Response> > > 
>::read (this=0x7febec0010f0, 
    msg=std::unique_ptr<hbase::Response> containing 0x0) at 
/usr/local/include/wangle/channel/HandlerContext-inl.h:264
#40 0x00007fec1361ccc1 in wangle::ContextImpl<hbase::ClientHandler>::fireRead 
(this=0x7febd000c2c0, msg=std::unique_ptr<hbase::Response> containing 0x0)
    at /usr/local/include/wangle/channel/HandlerContext-inl.h:166
#41 0x00007fec136054c2 in hbase::ClientHandler::read (this=0x7febd000c240, 
ctx=0x7febd000c2c0, buf=std::unique_ptr<folly::IOBuf> containing 0x0) at 
connection/client-handler.cc:114
#42 0x00007fec1361d4fc in wangle::ContextImpl<hbase::ClientHandler>::read 
(this=0x7febd000c2c0, msg=std::unique_ptr<folly::IOBuf> containing 0x0)
    at /usr/local/include/wangle/channel/HandlerContext-inl.h:264
#43 0x00007fec135f8071 in 
wangle::InboundContextImpl<wangle::LengthFieldBasedFrameDecoder>::fireRead 
(this=0x7febd00021e0, msg=std::unique_ptr<folly::IOBuf> containing 0x0)
    at /usr/local/include/wangle/channel/HandlerContext-inl.h:335
#44 0x0000000000440a94 in 
wangle::ByteToMessageDecoder<std::unique_ptr<folly::IOBuf, 
std::default_delete<folly::IOBuf> > 
>::read(wangle::InboundHandlerContext<std::unique_ptr<folly::IOBuf, 
std::default_delete<folly::IOBuf> > >*, folly::IOBufQueue&) ()
#45 0x00007fec135f84b7 in 
wangle::InboundContextImpl<wangle::LengthFieldBasedFrameDecoder>::read 
(this=0x7febd00021e0, msg=...) at 
/usr/local/include/wangle/channel/HandlerContext-inl.h:384
#46 0x00007fec1361dd92 in wangle::ContextImpl<hbase::SaslHandler>::fireRead 
(this=0x7febd00020c0, msg=...) at 
/usr/local/include/wangle/channel/HandlerContext-inl.h:166
#47 0x00007fec1361570b in hbase::SaslHandler::read (this=0x7febd0002040, 
ctx=0x7febd00020c0, buf=...) at connection/sasl-handler.cc:96
#48 0x00007fec1361e59d in wangle::ContextImpl<hbase::SaslHandler>::read 
(this=0x7febd00020c0, msg=...) at 
/usr/local/include/wangle/channel/HandlerContext-inl.h:264
#49 0x00007fec135f9432 in 
wangle::ContextImpl<wangle::AsyncSocketHandler>::fireRead (this=0x7febd0001e80, 
msg=...) at /usr/local/include/wangle/channel/HandlerContext-inl.h:166
#50 0x00007fec135d9ecd in wangle::AsyncSocketHandler::readDataAvailable 
(this=0x7febd00017d0, len=841) at 
/usr/local/include/wangle/channel/AsyncSocketHandler.h:138
#51 0x00007fec123b46d4 in folly::AsyncSocket::handleRead (this=0x7febd0001850) 
at io/async/AsyncSocket.cpp:1628
#52 0x00007fec123acaee in folly::AsyncSocket::ioReady (this=0x7febd0001850, 
events=2) at io/async/AsyncSocket.cpp:1458
#53 0x00007fec0d2d7a14 in event_base_loop () from /lib64/libevent-2.0.so.5
#54 0x00007fec123cc3b5 in folly::EventBase::loopBody 
(this=this@entry=0x7febd00009f0, flags=flags@entry=0) at 
io/async/EventBase.cpp:297
#55 0x00007fec123ccd97 in folly::EventBase::loop 
(this=this@entry=0x7febd00009f0) at io/async/EventBase.cpp:236
#56 0x00007fec123ce126 in folly::EventBase::loopForever (this=0x7febd00009f0) 
at io/async/EventBase.cpp:434
#57 0x000000000044fe5c in 
wangle::IOThreadPoolExecutor::threadRun(std::shared_ptr<wangle::ThreadPoolExecutor::Thread>)
 ()
#58 0x0000000000461ec7 in void std::_Mem_fn_base<void 
(wangle::ThreadPoolExecutor::*)(std::shared_ptr<wangle::ThreadPoolExecutor::Thread>),
 true>::operator()<std::shared_ptr<wangle::ThreadPoolExecutor::Thread>&, 
void>(wangle::ThreadPoolExecutor*, 
std::shared_ptr<wangle::ThreadPoolExecutor::Thread>&) const ()
#59 0x00000000004605dd in void std::_Bind<std::_Mem_fn<void 
(wangle::ThreadPoolExecutor::*)(std::shared_ptr<wangle::ThreadPoolExecutor::Thread>)>
 (wangle::ThreadPoolExecutor*, 
std::shared_ptr<wangle::ThreadPoolExecutor::Thread>)>::__call<void, , 0ul, 
1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) ()
#60 0x000000000045ef48 in void std::_Bind<std::_Mem_fn<void 
(wangle::ThreadPoolExecutor::*)(std::shared_ptr<wangle::ThreadPoolExecutor::Thread>)>
 (wangle::ThreadPoolExecutor*, 
std::shared_ptr<wangle::ThreadPoolExecutor::Thread>)>::operator()<, void>() ()
#61 0x000000000045d3e8 in void folly::detail::function::FunctionTraits<void 
()>::callBig<std::_Bind<std::_Mem_fn<void 
(wangle::ThreadPoolExecutor::*)(std::shared_ptr<wangle::ThreadPoolExecutor::Thread>)>
 (wangle::ThreadPoolExecutor*, 
std::shared_ptr<wangle::ThreadPoolExecutor::Thread>)> 
>(folly::detail::function::Data&) ()
#62 0x000000000044c485 in folly::detail::function::FunctionTraits<void 
()>::operator()() ()
#63 0x000000000044b6c0 in void std::_Bind_simple<folly::Function<void ()> 
()>::_M_invoke<>(std::_Index_tuple<>) ()
#64 0x000000000044af1f in std::_Bind_simple<folly::Function<void ()> 
()>::operator()() ()
#65 0x000000000044a7ea in 
std::thread::_Impl<std::_Bind_simple<folly::Function<void ()> ()> >::_M_run() ()
#66 0x00007fec139c3bd0 in execute_native_thread_routine_compat () from 
/usr/local/lib/libHbaseClient_d.so
#67 0x00007fec0eea1dc5 in start_thread () from /lib64/libpthread.so.0
#68 0x00007fec0ebd073d in clone () from /lib64/libc.so.6
{code}

> [C++] Fix deadlock in AsyncScanRetryingCaller and other RPCs
> ------------------------------------------------------------
>
>                 Key: HBASE-18565
>                 URL: https://issues.apache.org/jira/browse/HBASE-18565
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: HBASE-14850
>
>
> When running the load-client test, sometimes we get a deadlock.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to