[ 
https://issues.apache.org/jira/browse/TUBEMQ-368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Guocheng Zhang updated TUBEMQ-368:
----------------------------------
    Description: 
When tubemq::TubeMQConsumer shutdown() is called, there is a small probability 
that it will be cored directly. The following is the stack information:

 
{quote}#0 0x00002b939d73cc8e in __memcmp_sse4_1 () from /lib64/libc.so.6
 #1 0x00002b939ce788b3 in std::string::compare(std::string const&) const () 
from /lib64/libstdc++.so.6
 #2 0x0000000000528c2e in operator< <char, std::char_traits<char>, 
std::allocator<char> > (__rhs="", __lhs="")
 at /usr/include/c++/4.8.2/bits/basic_string.h:2571
 #3 operator() (this=<optimized out>, __y="", __x="") at 
/usr/include/c++/4.8.2/bits/stl_function.h:235
 #4 std::_Rb_tree<std::string, std::pair<std::string const, 
tubemq::PartitionExt>, std::_Select1st<std::pair<std::string const, 
tubemq::PartitionExt> >, std::less<std::string>, 
std::allocator<std::pair<std::string const, tubemq::PartitionExt> > 
>::_M_lower_bound (
 __x=0x2b93f00250f0, __y=0x2b93f0011f90, __y@entry=0x4a9d148, __k="", 
this=0x4a9d140) at /usr/include/c++/4.8.2/bits/stl_tree.h:1141
 #5 0x000000000052d65a in std::_Rb_tree<std::string, std::pair<std::string 
const, tubemq::PartitionExt>, std::_Select1st<std::pair<std::string const, 
tubemq::PartitionExt> >, std::less<std::string>, 
std::allocator<std::pair<std::string const, tubemq::PartitionExt> > >::find 
(this=this@entry=0x4a9d140, __k="") at 
/usr/include/c++/4.8.2/bits/stl_tree.h:1792
 #6 0x0000000000529a4d in find (__x="", this=0x4a9d140) at 
/usr/include/c++/4.8.2/bits/stl_map.h:822
 Python Exception <type 'exceptions.IndexError'> list index out of range: 
 #7 tubemq::RmtDataCacheCsm::GetPartitionByBroker (this=this@entry=0x4a9cf90, 
broker_info=..., partition_list=empty std::list)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/rmt_data_cache.cc:334
 #8 0x000000000050b57d in tubemq::BaseConsumer::reSetBrokerHBTimer 
(this=0x4a9cd90, broker=...)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/baseconsumer.cc:1500
 #9 0x000000000050b900 in tubemq::BaseConsumer::__lambda14::operator() 
(__closure=0x2b93dc030070, error=..., response_context=...)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/baseconsumer.cc:801
 #10 0x000000000050be10 in std::_Function_handler<void(tubemq::ErrorCode, const 
tubemq::ResponseContext&), 
tubemq::BaseConsumer::processHeartBeat2Broker(tubemq::NodeInfo)::__lambda14>::_M_invoke(const
 std::_Any_data &, tubemq::ErrorCode, const tubemq::ResponseContext &) (
 __functor=..., __args#0=..., __args#1=...) at 
/usr/include/c++/4.8.2/functional:2071
 #11 0x0000000000538318 in operator() (__args#1=..., 
 __args#0=<error reading variable: access outside bounds of object referenced 
via synthetic pointer>, this=0x2b93a7133810)
 at /usr/include/c++/4.8.2/functional:2471
 #12 tubemq::Promise<tubemq::ResponseContext>::callbackAndNotify 
(this=this@entry=0x2b93d4001670)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/future.h:130
 #13 0x000000000053201d in SetValue (value=..., this=0x2b93d4001670) at 
/root/access_platform_group/TubeMQ-Client-Cpp/src/future.h:102
 #14 tubemq::ClientConnection::requestCallback (this=this@entry=0x2b93d0915898, 
request_id=46829, err=err@entry=0x0, 
 check_out=check_out@entry=0x2b93a7133930) at 
/root/access_platform_group/TubeMQ-Client-Cpp/src/client_connection.cc:248
 #15 0x0000000000532531 in tubemq::ClientConnection::checkPackageDone 
(this=0x2b93d0915898)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/client_connection.cc:221
 #16 0x0000000000532c05 in tubemq::ClientConnection::__lambda7::operator() 
(ec=..., len=<optimized out>, __closure=0x2b93a7133b10)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/client_connection.cc:178
 #17 0x00000000005351d8 in operator() (this=0x2b93a7133b10)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/bind_handler.hpp:181
 #18 
asio_handler_invoke<asio::detail::binder2<tubemq::ClientConnection::asyncRead()::__lambda7,
 std::error_code, long unsigned int> > (
 function=...) at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/handler_invoke_hook.hpp:87
 #19 
invoke<asio::detail::binder2<tubemq::ClientConnection::asyncRead()::__lambda7, 
std::error_code, long unsigned int>, 
tubemq::ClientConnection::asyncRead()::__lambda7> (context=..., function=...)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/handler_invoke_helpers.hpp:54
 #20 
complete<asio::detail::binder2<tubemq::ClientConnection::asyncRead()::__lambda7,
 std::error_code, long unsigned int> > (
 handler=..., function=..., this=0x2b93a7133ae0)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/handler_work.hpp:424
 #21 asio::detail::reactive_socket_recv_op<asio::mutable_buffers_1, 
tubemq::ClientConnection::asyncRead()::__lambda7, 
asio::execution::any_executor<asio::execution::context_as_t<asio::execution_context&>,
 asio::execution::detail::blocking::never_t<0>, 
asio::execution::prefer_only<asio::execution::detail::blocking::possibly_t<0> 
>, 
asio::execution::prefer_only<asio::execution::detail::outstanding_work::tracked_t<0>
 >, 
asio::execution::prefer_only<asio::execution::detail::outstanding_work::untracked_t<0>
 >, 
asio::execution::prefer_only<asio::execution::detail::relationship::fork_t<0> 
>, 
asio::execution::prefer_only<asio::execution::detail::relationship::continuation_t<0>
 > > >::do_complete(void *, asio::detail::operation *, const asio::error_code 
&, std::size_t) (owner=0x2b93d0026c30, base=<optimized out>)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/reactive_socket_recv_op.hpp:144
 #22 0x0000000000501c19 in complete (bytes_transferred=<optimized out>, ec=..., 
owner=0x2b93d0026c30, this=<optimized out>)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/scheduler_operation.hpp:39
 #23 asio::detail::scheduler::do_run_one (this=this@entry=0x2b93d0026c30, 
lock=..., this_thread=..., ec=...)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/impl/scheduler.ipp:480
 #24 0x0000000000502401 in asio::detail::scheduler::run 
(this=this@entry=0x2b93d0026c30, ec=...)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/impl/scheduler.ipp:203
 #25 0x000000000051f1c9 in run (this=<optimized out>)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/impl/io_context.ipp:62
 #26 tubemq::Executor::StartWorker (this=<optimized out>, io_context=...)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/executor_pool.cc:42
 #27 0x0000000000522b42 in operator()<std::shared_ptr<asio::io_context>&, void> 
(__object=<optimized out>, this=<optimized out>)
 at /usr/include/c++/4.8.2/functional:601
 #28 __call<void, 0ul, 1ul> (__args=<optimized out>, this=<optimized out>) at 
/usr/include/c++/4.8.2/functional:1296
 #29 operator()<, void> (this=<optimized out>) at 
/usr/include/c++/4.8.2/functional:1355
 #30 _M_invoke<> (this=<optimized out>) at 
/usr/include/c++/4.8.2/functional:1732
 #31 operator() (this=<optimized out>) at /usr/include/c++/4.8.2/functional:1720
 ---Type <return> to continue, or q <return> to quit---
 #32 std::thread::_Impl<std::_Bind_simple<std::_Bind<std::_Mem_fn<void 
(tubemq::Executor::*)(std::shared_ptr<asio::io_context>)> (tubemq::Executor*, 
std::shared_ptr<asio::io_context>)> ()> >::_M_run() (this=<optimized out>) at 
/usr/include/c++/4.8.2/thread:115
 #33 0x00002b939ce70220 in ?? () from /lib64/libstdc++.so.6
 #34 0x00002b939c0c6e25 in start_thread () from /lib64/libpthread.so.0
 #35 0x00002b939d6d435d in clone () from /lib64/libc.so.6
{quote}

  was:
在调用tubemq::TubeMQConsumer shutdown() 时, 发现会有小概率直接core掉

在附件中上传了现场

 
{quote}#0 0x00002b939d73cc8e in __memcmp_sse4_1 () from /lib64/libc.so.6
#1 0x00002b939ce788b3 in std::string::compare(std::string const&) const () from 
/lib64/libstdc++.so.6
#2 0x0000000000528c2e in operator< <char, std::char_traits<char>, 
std::allocator<char> > (__rhs="", __lhs="")
 at /usr/include/c++/4.8.2/bits/basic_string.h:2571
#3 operator() (this=<optimized out>, __y="", __x="") at 
/usr/include/c++/4.8.2/bits/stl_function.h:235
#4 std::_Rb_tree<std::string, std::pair<std::string const, 
tubemq::PartitionExt>, std::_Select1st<std::pair<std::string const, 
tubemq::PartitionExt> >, std::less<std::string>, 
std::allocator<std::pair<std::string const, tubemq::PartitionExt> > 
>::_M_lower_bound (
 __x=0x2b93f00250f0, __y=0x2b93f0011f90, __y@entry=0x4a9d148, __k="", 
this=0x4a9d140) at /usr/include/c++/4.8.2/bits/stl_tree.h:1141
#5 0x000000000052d65a in std::_Rb_tree<std::string, std::pair<std::string 
const, tubemq::PartitionExt>, std::_Select1st<std::pair<std::string const, 
tubemq::PartitionExt> >, std::less<std::string>, 
std::allocator<std::pair<std::string const, tubemq::PartitionExt> > >::find 
(this=this@entry=0x4a9d140, __k="") at 
/usr/include/c++/4.8.2/bits/stl_tree.h:1792
#6 0x0000000000529a4d in find (__x="", this=0x4a9d140) at 
/usr/include/c++/4.8.2/bits/stl_map.h:822
Python Exception <type 'exceptions.IndexError'> list index out of range: 
#7 tubemq::RmtDataCacheCsm::GetPartitionByBroker (this=this@entry=0x4a9cf90, 
broker_info=..., partition_list=empty std::list)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/rmt_data_cache.cc:334
#8 0x000000000050b57d in tubemq::BaseConsumer::reSetBrokerHBTimer 
(this=0x4a9cd90, broker=...)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/baseconsumer.cc:1500
#9 0x000000000050b900 in tubemq::BaseConsumer::__lambda14::operator() 
(__closure=0x2b93dc030070, error=..., response_context=...)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/baseconsumer.cc:801
#10 0x000000000050be10 in std::_Function_handler<void(tubemq::ErrorCode, const 
tubemq::ResponseContext&), 
tubemq::BaseConsumer::processHeartBeat2Broker(tubemq::NodeInfo)::__lambda14>::_M_invoke(const
 std::_Any_data &, tubemq::ErrorCode, const tubemq::ResponseContext &) (
 __functor=..., __args#0=..., __args#1=...) at 
/usr/include/c++/4.8.2/functional:2071
#11 0x0000000000538318 in operator() (__args#1=..., 
 __args#0=<error reading variable: access outside bounds of object referenced 
via synthetic pointer>, this=0x2b93a7133810)
 at /usr/include/c++/4.8.2/functional:2471
#12 tubemq::Promise<tubemq::ResponseContext>::callbackAndNotify 
(this=this@entry=0x2b93d4001670)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/future.h:130
#13 0x000000000053201d in SetValue (value=..., this=0x2b93d4001670) at 
/root/access_platform_group/TubeMQ-Client-Cpp/src/future.h:102
#14 tubemq::ClientConnection::requestCallback (this=this@entry=0x2b93d0915898, 
request_id=46829, err=err@entry=0x0, 
 check_out=check_out@entry=0x2b93a7133930) at 
/root/access_platform_group/TubeMQ-Client-Cpp/src/client_connection.cc:248
#15 0x0000000000532531 in tubemq::ClientConnection::checkPackageDone 
(this=0x2b93d0915898)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/client_connection.cc:221
#16 0x0000000000532c05 in tubemq::ClientConnection::__lambda7::operator() 
(ec=..., len=<optimized out>, __closure=0x2b93a7133b10)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/client_connection.cc:178
#17 0x00000000005351d8 in operator() (this=0x2b93a7133b10)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/bind_handler.hpp:181
#18 
asio_handler_invoke<asio::detail::binder2<tubemq::ClientConnection::asyncRead()::__lambda7,
 std::error_code, long unsigned int> > (
 function=...) at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/handler_invoke_hook.hpp:87
#19 
invoke<asio::detail::binder2<tubemq::ClientConnection::asyncRead()::__lambda7, 
std::error_code, long unsigned int>, 
tubemq::ClientConnection::asyncRead()::__lambda7> (context=..., function=...)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/handler_invoke_helpers.hpp:54
#20 
complete<asio::detail::binder2<tubemq::ClientConnection::asyncRead()::__lambda7,
 std::error_code, long unsigned int> > (
 handler=..., function=..., this=0x2b93a7133ae0)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/handler_work.hpp:424
#21 asio::detail::reactive_socket_recv_op<asio::mutable_buffers_1, 
tubemq::ClientConnection::asyncRead()::__lambda7, 
asio::execution::any_executor<asio::execution::context_as_t<asio::execution_context&>,
 asio::execution::detail::blocking::never_t<0>, 
asio::execution::prefer_only<asio::execution::detail::blocking::possibly_t<0> 
>, 
asio::execution::prefer_only<asio::execution::detail::outstanding_work::tracked_t<0>
 >, 
asio::execution::prefer_only<asio::execution::detail::outstanding_work::untracked_t<0>
 >, 
asio::execution::prefer_only<asio::execution::detail::relationship::fork_t<0> 
>, 
asio::execution::prefer_only<asio::execution::detail::relationship::continuation_t<0>
 > > >::do_complete(void *, asio::detail::operation *, const asio::error_code 
&, std::size_t) (owner=0x2b93d0026c30, base=<optimized out>)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/reactive_socket_recv_op.hpp:144
#22 0x0000000000501c19 in complete (bytes_transferred=<optimized out>, ec=..., 
owner=0x2b93d0026c30, this=<optimized out>)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/scheduler_operation.hpp:39
#23 asio::detail::scheduler::do_run_one (this=this@entry=0x2b93d0026c30, 
lock=..., this_thread=..., ec=...)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/impl/scheduler.ipp:480
#24 0x0000000000502401 in asio::detail::scheduler::run 
(this=this@entry=0x2b93d0026c30, ec=...)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/impl/scheduler.ipp:203
#25 0x000000000051f1c9 in run (this=<optimized out>)
 at 
/root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/impl/io_context.ipp:62
#26 tubemq::Executor::StartWorker (this=<optimized out>, io_context=...)
 at /root/access_platform_group/TubeMQ-Client-Cpp/src/executor_pool.cc:42
#27 0x0000000000522b42 in operator()<std::shared_ptr<asio::io_context>&, void> 
(__object=<optimized out>, this=<optimized out>)
 at /usr/include/c++/4.8.2/functional:601
#28 __call<void, 0ul, 1ul> (__args=<optimized out>, this=<optimized out>) at 
/usr/include/c++/4.8.2/functional:1296
#29 operator()<, void> (this=<optimized out>) at 
/usr/include/c++/4.8.2/functional:1355
#30 _M_invoke<> (this=<optimized out>) at /usr/include/c++/4.8.2/functional:1732
#31 operator() (this=<optimized out>) at /usr/include/c++/4.8.2/functional:1720
---Type <return> to continue, or q <return> to quit---
#32 std::thread::_Impl<std::_Bind_simple<std::_Bind<std::_Mem_fn<void 
(tubemq::Executor::*)(std::shared_ptr<asio::io_context>)> (tubemq::Executor*, 
std::shared_ptr<asio::io_context>)> ()> >::_M_run() (this=<optimized out>) at 
/usr/include/c++/4.8.2/thread:115
#33 0x00002b939ce70220 in ?? () from /lib64/libstdc++.so.6
#34 0x00002b939c0c6e25 in start_thread () from /lib64/libpthread.so.0
#35 0x00002b939d6d435d in clone () from /lib64/libc.so.6
{quote}


> When tubemq::TubeMQConsumer shutdown() is called, there is a small 
> probability that it will be cored directly
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: TUBEMQ-368
>                 URL: https://issues.apache.org/jira/browse/TUBEMQ-368
>             Project: Apache TubeMQ
>          Issue Type: Bug
>          Components: Client
>         Environment: linux
>            Reporter: houjie
>            Priority: Major
>
> When tubemq::TubeMQConsumer shutdown() is called, there is a small 
> probability that it will be cored directly. The following is the stack 
> information:
>  
> {quote}#0 0x00002b939d73cc8e in __memcmp_sse4_1 () from /lib64/libc.so.6
>  #1 0x00002b939ce788b3 in std::string::compare(std::string const&) const () 
> from /lib64/libstdc++.so.6
>  #2 0x0000000000528c2e in operator< <char, std::char_traits<char>, 
> std::allocator<char> > (__rhs="", __lhs="")
>  at /usr/include/c++/4.8.2/bits/basic_string.h:2571
>  #3 operator() (this=<optimized out>, __y="", __x="") at 
> /usr/include/c++/4.8.2/bits/stl_function.h:235
>  #4 std::_Rb_tree<std::string, std::pair<std::string const, 
> tubemq::PartitionExt>, std::_Select1st<std::pair<std::string const, 
> tubemq::PartitionExt> >, std::less<std::string>, 
> std::allocator<std::pair<std::string const, tubemq::PartitionExt> > 
> >::_M_lower_bound (
>  __x=0x2b93f00250f0, __y=0x2b93f0011f90, __y@entry=0x4a9d148, __k="", 
> this=0x4a9d140) at /usr/include/c++/4.8.2/bits/stl_tree.h:1141
>  #5 0x000000000052d65a in std::_Rb_tree<std::string, std::pair<std::string 
> const, tubemq::PartitionExt>, std::_Select1st<std::pair<std::string const, 
> tubemq::PartitionExt> >, std::less<std::string>, 
> std::allocator<std::pair<std::string const, tubemq::PartitionExt> > >::find 
> (this=this@entry=0x4a9d140, __k="") at 
> /usr/include/c++/4.8.2/bits/stl_tree.h:1792
>  #6 0x0000000000529a4d in find (__x="", this=0x4a9d140) at 
> /usr/include/c++/4.8.2/bits/stl_map.h:822
>  Python Exception <type 'exceptions.IndexError'> list index out of range: 
>  #7 tubemq::RmtDataCacheCsm::GetPartitionByBroker (this=this@entry=0x4a9cf90, 
> broker_info=..., partition_list=empty std::list)
>  at /root/access_platform_group/TubeMQ-Client-Cpp/src/rmt_data_cache.cc:334
>  #8 0x000000000050b57d in tubemq::BaseConsumer::reSetBrokerHBTimer 
> (this=0x4a9cd90, broker=...)
>  at /root/access_platform_group/TubeMQ-Client-Cpp/src/baseconsumer.cc:1500
>  #9 0x000000000050b900 in tubemq::BaseConsumer::__lambda14::operator() 
> (__closure=0x2b93dc030070, error=..., response_context=...)
>  at /root/access_platform_group/TubeMQ-Client-Cpp/src/baseconsumer.cc:801
>  #10 0x000000000050be10 in std::_Function_handler<void(tubemq::ErrorCode, 
> const tubemq::ResponseContext&), 
> tubemq::BaseConsumer::processHeartBeat2Broker(tubemq::NodeInfo)::__lambda14>::_M_invoke(const
>  std::_Any_data &, tubemq::ErrorCode, const tubemq::ResponseContext &) (
>  __functor=..., __args#0=..., __args#1=...) at 
> /usr/include/c++/4.8.2/functional:2071
>  #11 0x0000000000538318 in operator() (__args#1=..., 
>  __args#0=<error reading variable: access outside bounds of object referenced 
> via synthetic pointer>, this=0x2b93a7133810)
>  at /usr/include/c++/4.8.2/functional:2471
>  #12 tubemq::Promise<tubemq::ResponseContext>::callbackAndNotify 
> (this=this@entry=0x2b93d4001670)
>  at /root/access_platform_group/TubeMQ-Client-Cpp/src/future.h:130
>  #13 0x000000000053201d in SetValue (value=..., this=0x2b93d4001670) at 
> /root/access_platform_group/TubeMQ-Client-Cpp/src/future.h:102
>  #14 tubemq::ClientConnection::requestCallback 
> (this=this@entry=0x2b93d0915898, request_id=46829, err=err@entry=0x0, 
>  check_out=check_out@entry=0x2b93a7133930) at 
> /root/access_platform_group/TubeMQ-Client-Cpp/src/client_connection.cc:248
>  #15 0x0000000000532531 in tubemq::ClientConnection::checkPackageDone 
> (this=0x2b93d0915898)
>  at /root/access_platform_group/TubeMQ-Client-Cpp/src/client_connection.cc:221
>  #16 0x0000000000532c05 in tubemq::ClientConnection::__lambda7::operator() 
> (ec=..., len=<optimized out>, __closure=0x2b93a7133b10)
>  at /root/access_platform_group/TubeMQ-Client-Cpp/src/client_connection.cc:178
>  #17 0x00000000005351d8 in operator() (this=0x2b93a7133b10)
>  at 
> /root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/bind_handler.hpp:181
>  #18 
> asio_handler_invoke<asio::detail::binder2<tubemq::ClientConnection::asyncRead()::__lambda7,
>  std::error_code, long unsigned int> > (
>  function=...) at 
> /root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/handler_invoke_hook.hpp:87
>  #19 
> invoke<asio::detail::binder2<tubemq::ClientConnection::asyncRead()::__lambda7,
>  std::error_code, long unsigned int>, 
> tubemq::ClientConnection::asyncRead()::__lambda7> (context=..., function=...)
>  at 
> /root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/handler_invoke_helpers.hpp:54
>  #20 
> complete<asio::detail::binder2<tubemq::ClientConnection::asyncRead()::__lambda7,
>  std::error_code, long unsigned int> > (
>  handler=..., function=..., this=0x2b93a7133ae0)
>  at 
> /root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/handler_work.hpp:424
>  #21 asio::detail::reactive_socket_recv_op<asio::mutable_buffers_1, 
> tubemq::ClientConnection::asyncRead()::__lambda7, 
> asio::execution::any_executor<asio::execution::context_as_t<asio::execution_context&>,
>  asio::execution::detail::blocking::never_t<0>, 
> asio::execution::prefer_only<asio::execution::detail::blocking::possibly_t<0> 
> >, 
> asio::execution::prefer_only<asio::execution::detail::outstanding_work::tracked_t<0>
>  >, 
> asio::execution::prefer_only<asio::execution::detail::outstanding_work::untracked_t<0>
>  >, 
> asio::execution::prefer_only<asio::execution::detail::relationship::fork_t<0> 
> >, 
> asio::execution::prefer_only<asio::execution::detail::relationship::continuation_t<0>
>  > > >::do_complete(void *, asio::detail::operation *, const asio::error_code 
> &, std::size_t) (owner=0x2b93d0026c30, base=<optimized out>)
>  at 
> /root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/reactive_socket_recv_op.hpp:144
>  #22 0x0000000000501c19 in complete (bytes_transferred=<optimized out>, 
> ec=..., owner=0x2b93d0026c30, this=<optimized out>)
>  at 
> /root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/scheduler_operation.hpp:39
>  #23 asio::detail::scheduler::do_run_one (this=this@entry=0x2b93d0026c30, 
> lock=..., this_thread=..., ec=...)
>  at 
> /root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/impl/scheduler.ipp:480
>  #24 0x0000000000502401 in asio::detail::scheduler::run 
> (this=this@entry=0x2b93d0026c30, ec=...)
>  at 
> /root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/detail/impl/scheduler.ipp:203
>  #25 0x000000000051f1c9 in run (this=<optimized out>)
>  at 
> /root/access_platform_group/TubeMQ-Client-Cpp/build/third_party/include/asio/impl/io_context.ipp:62
>  #26 tubemq::Executor::StartWorker (this=<optimized out>, io_context=...)
>  at /root/access_platform_group/TubeMQ-Client-Cpp/src/executor_pool.cc:42
>  #27 0x0000000000522b42 in operator()<std::shared_ptr<asio::io_context>&, 
> void> (__object=<optimized out>, this=<optimized out>)
>  at /usr/include/c++/4.8.2/functional:601
>  #28 __call<void, 0ul, 1ul> (__args=<optimized out>, this=<optimized out>) at 
> /usr/include/c++/4.8.2/functional:1296
>  #29 operator()<, void> (this=<optimized out>) at 
> /usr/include/c++/4.8.2/functional:1355
>  #30 _M_invoke<> (this=<optimized out>) at 
> /usr/include/c++/4.8.2/functional:1732
>  #31 operator() (this=<optimized out>) at 
> /usr/include/c++/4.8.2/functional:1720
>  ---Type <return> to continue, or q <return> to quit---
>  #32 std::thread::_Impl<std::_Bind_simple<std::_Bind<std::_Mem_fn<void 
> (tubemq::Executor::*)(std::shared_ptr<asio::io_context>)> (tubemq::Executor*, 
> std::shared_ptr<asio::io_context>)> ()> >::_M_run() (this=<optimized out>) at 
> /usr/include/c++/4.8.2/thread:115
>  #33 0x00002b939ce70220 in ?? () from /lib64/libstdc++.so.6
>  #34 0x00002b939c0c6e25 in start_thread () from /lib64/libpthread.so.0
>  #35 0x00002b939d6d435d in clone () from /lib64/libc.so.6
> {quote}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to