Philip O'Toole
2013-10-09 03:57:45 UTC
Hello -- I've been coding with Boost ASIO 1.50, on 64-bit Ubuntu 12.0.4,
for about a year. It's been really great, and the software we've built has
been solid. Many thanks to the authors. (
http://www.loggly.com/behind-the-screens/ if anyone would like some more
details).
But I'm now dealing with a rare crash, during SSL connection shutdown.
Everything is coded async, and all the handlers (start, handshake, read,
stop, etc) are invoked through the same strand. E.g.
void start_async_handshake()
{
ssl_socket_.async_handshake(boost::asio::ssl::stream_base::server,
strand_.wrap(
boost::bind(&SecureNewlineTcpConnection::handle_handshake,
this->shared_from_this(), boost::asio::placeholders::error)));
}
We've solved everything else up until now, but this crash is pretty
mysterious. It seems to be happening either in async_shutdown, or in the
handler I pass into async_shutdown. But that handler -- handle_shutdown --
doesn't do anything. Any ideas out there?
Program terminated with signal 11, Segmentation fault.
#0 0x00007fc186982cd8 in ?? () from /lib/x86_64-linux-gnu/
libcrypto.so.1.0.0
#0 0x00007fc186982cd8 in ?? () from
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#1 0xca62c1d6ca62c1d6 in ?? ()
#2 0xca62c1d6ca62c1d6 in ?? ()
#3 0xca62c1d6ca62c1d6 in ?? ()
#4 0xca62c1d6ca62c1d6 in ?? ()
#5 0xca62c1d6ca62c1d6 in ?? ()
#6 0xca62c1d6ca62c1d6 in ?? ()
#7 0xca62c1d6ca62c1d6 in ?? ()
#8 0xca62c1d6ca62c1d6 in ?? ()
#9 0x00007fc15847113b in ?? ()
#10 0x00007fc15456d104 in ?? ()
#11 0xffffffffffffffc0 in ?? ()
#12 0x00007fc186a06975 in ?? () from
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#13 0x00007fc186a06d76 in ?? () from
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#14 0x00007fc1866e5bdf in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0
#15 0x00007fc1866dd6e0 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0
#16 0x00007fc1866dab40 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0
#17 0x000000000043f8ac in boost::asio::ssl::detail::engine::do_shutdown
(this=0x7fc178037718) at
/usr/local/include/boost/asio/ssl/detail/impl/engine.ipp:281
#18 0x0000000000444993 in boost::asio::ssl::detail::engine::perform
(this=0x7fc178037718, op=(int
(boost::asio::ssl::detail::engine::*)(boost::asio::ssl::detail::engine *
const, void *, std::size_t)) 0x43f8a0
<boost::asio::ssl::detail::engine::do_shutdown(void*, unsigned long)>,
data=0x0, length=<optimized out>, ec=@0x7fc181fd54e8: {m_val = 0, m_cat =
0x7fc18590a0a8}, bytes_transferred=0x0) at
/usr/local/include/boost/asio/ssl/detail/impl/engine.ipp:219
#19 0x0000000000486654 in shutdown (this=<optimized out>,
ec=@0x7fc181fd54e8: {m_val = 0, m_cat = 0x7fc18590a0a8}) at
/usr/local/include/boost/asio/ssl/detail/impl/engine.ipp:123
#20 operator() (bytes_transferred=@0x7fc181fd54f8: 0, ec=@0x7fc181fd54e8:
{m_val = 0, m_cat = 0x7fc18590a0a8}, eng=<optimized out>, this=<optimized
out>) at /usr/local/include/boost/asio/ssl/detail/shutdown_op.hpp:41
#21
boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,
boost::asio::stream_socket_service<boost::asio::ip::tcp> >,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
start=0) at /usr/local/include/boost/asio/ssl/detail/io.hpp:136
#22 0x000000000049164b in operator() (this=0x7fc181fd54d0) at
/usr/local/include/boost/asio/detail/bind_handler.hpp:46
#23 operator() (this=0x7fc181fd54b0) at
/usr/local/include/boost/asio/detail/wrapped_handler.hpp:171
#24
asio_handler_invoke<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
/usr/local/include/boost/asio/handler_invoke_hook.hpp:64
#25
invoke<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
{f_ = (void
(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::*)(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
* const, const boost::system::error_code &)) 0x43f930
<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::handle_shutdown(boost::system::error_code
const&)>}, l_ =
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
<No data fields>}, <No data fields>}}, handler_ = {handler_ = {next_layer_
= @0x7fc1780376f8, core_ = @0x7fc178037718, op_ = {<No data fields>}, want_
= boost::asio::ssl::detail::engine::want_input_and_retry, ec_ = {m_val = 0,
m_cat = 0x7fc18590a0a8}, bytes_transferred_ = 0, handler_ = {dispatcher_ =
{service_ = @0x139c960, impl_ = 0x139d440}, handler_ = {f_ = {f_ = (void
(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::*)(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
* const, const boost::system::error_code &)) 0x43f930
<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::handle_shutdown(boost::system::error_code
const&)>}, l_ =
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
<No data fields>}, <No data fields>}}}}, arg1_ = {m_val = 125, m_cat =
0x7fc18590a0a8}}}, context=<optimized out>) at
/usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:39
#26
asio_handler_invoke<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
{f_ = (void
(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::*)(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
* const, const boost::system::error_code &)) 0x43f930
<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::handle_shutdown(boost::system::error_code
const&)>}, l_ =
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
<No data fields>}, <No data fields>}}, handler_ = {handler_ = {next_layer_
= @0x7fc1780376f8, core_ = @0x7fc178037718, op_ = {<No data fields>}, want_
=
#27 invoke<boost::asio::detail::
rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
= {f_ = (void
(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::*)(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
* const, const boost::system::error_code &)) 0x43f930
<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::handle_shutdown(boost::system::error_code
const&)>}, l_ =
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
<No data fields>}, <No data fields>}}, handler_ = {handler_ = {next_layer_
= @0x7fc1780376f8, core_ = @0x7fc178037718, op_ = {<No data fields>}, want_
= boost::asio::ssl::detail::engine::want_input_and_retry, ec_ = {m_val = 0,
m_cat = 0x7fc18590a0a8}, bytes_transferred_ = 0, handler_ = {dispatcher_ =
{service_ = @0x139c960, impl_ = 0x139d440}, handler_ = {f_ = {f_ = (void
(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::*)(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
* const, const boost::system::error_code &)) 0x43f930
<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::handle_shutdown(boost::system::error_code
const&)>}, l_ =
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
<No data fields>}, <No data fields>}}}}, arg1_ = {m_val = 125, m_cat =
0x7fc18590a0a8}}}, context=<optimized out>) at
/usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:39
#28
boost::asio::detail::completion_handler<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,
boost::asio::stream_socket_service<boost::asio::ip::tcp> >,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
/usr/local/include/boost/asio/detail/completion_handler.hpp:67
#29 0x000000000044376d in complete (bytes_transferred=0,
ec=@0x7fc181fd5db0: {m_val = 0, m_cat = 0x7fc18590a0a8}, owner=@0x136da70:
{<boost::asio::detail::service_base<boost::asio::detail::task_io_service>>
= {<boost::asio::io_service::service> = {<boost::noncopyable_::noncopyable>
= {<No data fields>}, _vptr.service = 0x4c8e50, key_ = {type_info_ =
0x4c8e70, id_ = 0x0}, owner_ = @0x710820, next_ = 0x0}, static id =
{<boost::asio::io_service::id> = {<boost::noncopyable_::noncopyable> = {<No
data fields>}, <No data fields>}, <No data fields>}}, one_thread_ = false,
mutex_ = {<boost::noncopyable_::noncopyable> = {<No data fields>}, mutex_ =
{__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 7, __kind = 0,
__spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000'
<repeats 12 times>, "\a", '\000' <repeats 26 times>, __align = 0}}, task_ =
0x136dd80, task_operation_ =
{<boost::asio::detail::task_io_service_operation> = {next_ = 0x0, func_ =
0, task_result_ = 0}, <No data fields>}, task_interrupted_ = false,
outstanding_work_ = {<std::__atomic2::__atomic_base<long>> = {_M_i =
20719}, <No data fields>}, op_queue_ = {<boost::noncopyable_::noncopyable>
= {<No data fields>}, front_ = 0x0, back_ = 0x0}, stopped_ = false,
shutdown_ = false, first_idle_thread_ = 0x7fc1827d6c60}, this=<optimized
out>) at
/usr/local/include/boost/asio/detail/task_io_service_operation.hpp:37
#30 boost::asio::detail::strand_service::do_complete (owner=0x136da70,
base=0x139d440, ec=@0x7fc181fd5db0: {m_val = 0, m_cat = 0x7fc18590a0a8}) at
/usr/local/include/boost/asio/detail/impl/strand_service.ipp:160
#31 0x0000000000427ac6 in complete (owner=@0x136da70:
{<boost::asio::detail::service_base<boost::asio::detail::task_io_service>>
= {<boost::asio::io_service::service> = {<boost::noncopyable_::noncopyable>
= {<No data fields>}, _vptr.service = 0x4c8e50, key_ = {type_info_ =
0x4c8e70, id_ = 0x0}, owner_ = @0x710820, next_ = 0x0}, static id =
{<boost::asio::io_service::id> = {<boost::noncopyable_::noncopyable> = {<No
data fields>}, <No data fields>}, <No data fields>}}, one_thread_ = false,
mutex_ = {<boost::noncopyable_::noncopyable> = {<No data fields>}, mutex_ =
{__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 7, __kind = 0,
__spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000'
<repeats 12 times>, "\a", '\000' <repeats 26 times>, __align = 0}}, task_ =
0x136dd80, task_operation_ =
{<boost::asio::detail::task_io_service_operation> = {next_ = 0x0, func_ =
0, task_result_ = 0}, <No data fields>}, task_interrupted_ = false,
outstanding_work_ = {<std::__atomic2::__atomic_base<long>> = {_M_i =
20719}, <No data fields>}, op_queue_ = {<boost::noncopyable_::noncopyable>
= {<No data fields>}, front_ = 0x0, back_ = 0x0}, stopped_ = false,
shutdown_ = false, first_idle_thread_ = 0x7fc1827d6c60}, this=0x139d440,
bytes_transferred=0, ec=@0x7fc181fd5db0: {m_val = 0, m_cat =
0x7fc18590a0a8}) at
/usr/local/include/boost/asio/detail/task_io_service_operation.hpp:37
#32 do_run_one (ec=<optimized out>, private_op_queue=<optimized out>,
this_thread=<optimized out>, lock=<optimized out>, this=<optimized out>) at
/usr/local/include/boost/asio/detail/impl/task_io_service.ipp:394
#33 boost::asio::detail::task_io_service::run (this=0x136da70,
ec=@0x7fc181fd5db0: {m_val = 0, m_cat = 0x7fc18590a0a8}) at
/usr/local/include/boost/asio/detail/impl/task_io_service.ipp:146
#34 0x0000000000435387 in run (this=<optimized out>) at
/usr/local/include/boost/asio/impl/io_service.ipp:59
#35 loggly::collector::Collector::io_thread (this=0x710420,
emitter=<optimized out>) at src/collector.cpp:276
#36 0x00007fc185bfcc5d in thread_proxy () from
/usr/local/lib/libboost_thread.so.1.50.0
#37 0x00007fc1864a6e9a in start_thread (arg=0x7fc181fd6700) at
pthread_create.c:308
#38 0x00007fc184e3fcbd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#39 0x0000000000000000 in ?? ()
(and more)
for about a year. It's been really great, and the software we've built has
been solid. Many thanks to the authors. (
http://www.loggly.com/behind-the-screens/ if anyone would like some more
details).
But I'm now dealing with a rare crash, during SSL connection shutdown.
Everything is coded async, and all the handlers (start, handshake, read,
stop, etc) are invoked through the same strand. E.g.
void start_async_handshake()
{
ssl_socket_.async_handshake(boost::asio::ssl::stream_base::server,
strand_.wrap(
boost::bind(&SecureNewlineTcpConnection::handle_handshake,
this->shared_from_this(), boost::asio::placeholders::error)));
}
We've solved everything else up until now, but this crash is pretty
mysterious. It seems to be happening either in async_shutdown, or in the
handler I pass into async_shutdown. But that handler -- handle_shutdown --
doesn't do anything. Any ideas out there?
Program terminated with signal 11, Segmentation fault.
#0 0x00007fc186982cd8 in ?? () from /lib/x86_64-linux-gnu/
libcrypto.so.1.0.0
#0 0x00007fc186982cd8 in ?? () from
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#1 0xca62c1d6ca62c1d6 in ?? ()
#2 0xca62c1d6ca62c1d6 in ?? ()
#3 0xca62c1d6ca62c1d6 in ?? ()
#4 0xca62c1d6ca62c1d6 in ?? ()
#5 0xca62c1d6ca62c1d6 in ?? ()
#6 0xca62c1d6ca62c1d6 in ?? ()
#7 0xca62c1d6ca62c1d6 in ?? ()
#8 0xca62c1d6ca62c1d6 in ?? ()
#9 0x00007fc15847113b in ?? ()
#10 0x00007fc15456d104 in ?? ()
#11 0xffffffffffffffc0 in ?? ()
#12 0x00007fc186a06975 in ?? () from
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#13 0x00007fc186a06d76 in ?? () from
/lib/x86_64-linux-gnu/libcrypto.so.1.0.0
#14 0x00007fc1866e5bdf in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0
#15 0x00007fc1866dd6e0 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0
#16 0x00007fc1866dab40 in ?? () from /lib/x86_64-linux-gnu/libssl.so.1.0.0
#17 0x000000000043f8ac in boost::asio::ssl::detail::engine::do_shutdown
(this=0x7fc178037718) at
/usr/local/include/boost/asio/ssl/detail/impl/engine.ipp:281
#18 0x0000000000444993 in boost::asio::ssl::detail::engine::perform
(this=0x7fc178037718, op=(int
(boost::asio::ssl::detail::engine::*)(boost::asio::ssl::detail::engine *
const, void *, std::size_t)) 0x43f8a0
<boost::asio::ssl::detail::engine::do_shutdown(void*, unsigned long)>,
data=0x0, length=<optimized out>, ec=@0x7fc181fd54e8: {m_val = 0, m_cat =
0x7fc18590a0a8}, bytes_transferred=0x0) at
/usr/local/include/boost/asio/ssl/detail/impl/engine.ipp:219
#19 0x0000000000486654 in shutdown (this=<optimized out>,
ec=@0x7fc181fd54e8: {m_val = 0, m_cat = 0x7fc18590a0a8}) at
/usr/local/include/boost/asio/ssl/detail/impl/engine.ipp:123
#20 operator() (bytes_transferred=@0x7fc181fd54f8: 0, ec=@0x7fc181fd54e8:
{m_val = 0, m_cat = 0x7fc18590a0a8}, eng=<optimized out>, this=<optimized
out>) at /usr/local/include/boost/asio/ssl/detail/shutdown_op.hpp:41
#21
boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,
boost::asio::stream_socket_service<boost::asio::ip::tcp> >,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > > >::operator() (this=0x7fc181fd54d0, ec={m_val
= 125, m_cat = 0x7fc18590a0a8}, bytes_transferred=18446744073709551615,start=0) at /usr/local/include/boost/asio/ssl/detail/io.hpp:136
#22 0x000000000049164b in operator() (this=0x7fc181fd54d0) at
/usr/local/include/boost/asio/detail/bind_handler.hpp:46
#23 operator() (this=0x7fc181fd54b0) at
/usr/local/include/boost/asio/detail/wrapped_handler.hpp:171
#24
asio_handler_invoke<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > > >, boost::system::error_code>,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > > > (function=<error reading variable: access
outside bounds of object referenced via synthetic pointer>) at/usr/local/include/boost/asio/handler_invoke_hook.hpp:64
#25
invoke<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > > >, boost::system::error_code>,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > >, boost::_bi::bind_t<void,
boost::_mfi::mf1<void,loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
{f_ = (void
(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::*)(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
* const, const boost::system::error_code &)) 0x43f930
<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::handle_shutdown(boost::system::error_code
const&)>}, l_ =
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()>> =
{<boost::_bi::storage1<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>= {a1_ = {t_ = {px = 0x7fc178037630, pn = {pi_ = 0x7fc178105150}}}},
= @0x7fc1780376f8, core_ = @0x7fc178037718, op_ = {<No data fields>}, want_
= boost::asio::ssl::detail::engine::want_input_and_retry, ec_ = {m_val = 0,
m_cat = 0x7fc18590a0a8}, bytes_transferred_ = 0, handler_ = {dispatcher_ =
{service_ = @0x139c960, impl_ = 0x139d440}, handler_ = {f_ = {f_ = (void
(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::*)(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
* const, const boost::system::error_code &)) 0x43f930
<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::handle_shutdown(boost::system::error_code
const&)>}, l_ =
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()>> =
{<boost::_bi::storage1<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>= {a1_ = {t_ = {px = 0x7fc178037630, pn = {pi_ = 0x7fc178105150}}}},
0x7fc18590a0a8}}}, context=<optimized out>) at
/usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:39
#26
asio_handler_invoke<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > > >, boost::system::error_code>,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > >,
boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>,boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > > >, boost::system::error_code>,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
{f_ = (void
(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::*)(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
* const, const boost::system::error_code &)) 0x43f930
<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::handle_shutdown(boost::system::error_code
const&)>}, l_ =
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()>> =
{<boost::_bi::storage1<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>= {a1_ = {t_ = {px = 0x7fc178037630, pn = {pi_ = 0x7fc178105150}}}},
= @0x7fc1780376f8, core_ = @0x7fc178037718, op_ = {<No data fields>}, want_
=
#27 invoke<boost::asio::detail::
rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > > >, boost::system::error_code>,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > >,
boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp>,boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > > >, boost::system::error_code>,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
= {f_ = (void
(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::*)(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
* const, const boost::system::error_code &)) 0x43f930
<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::handle_shutdown(boost::system::error_code
const&)>}, l_ =
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()>> =
{<boost::_bi::storage1<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>= {a1_ = {t_ = {px = 0x7fc178037630, pn = {pi_ = 0x7fc178105150}}}},
= @0x7fc1780376f8, core_ = @0x7fc178037718, op_ = {<No data fields>}, want_
= boost::asio::ssl::detail::engine::want_input_and_retry, ec_ = {m_val = 0,
m_cat = 0x7fc18590a0a8}, bytes_transferred_ = 0, handler_ = {dispatcher_ =
{service_ = @0x139c960, impl_ = 0x139d440}, handler_ = {f_ = {f_ = (void
(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::*)(loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
* const, const boost::system::error_code &)) 0x43f930
<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>::handle_shutdown(boost::system::error_code
const&)>}, l_ =
{<boost::_bi::storage2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()>> =
{<boost::_bi::storage1<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>= {a1_ = {t_ = {px = 0x7fc178037630, pn = {pi_ = 0x7fc178105150}}}},
0x7fc18590a0a8}}}, context=<optimized out>) at
/usr/local/include/boost/asio/detail/handler_invoke_helpers.hpp:39
#28
boost::asio::detail::completion_handler<boost::asio::detail::rewrapped_handler<boost::asio::detail::binder1<boost::asio::ssl::detail::io_op<boost::asio::basic_stream_socket<boost::asio::ip::tcp,
boost::asio::stream_socket_service<boost::asio::ip::tcp> >,
boost::asio::ssl::detail::shutdown_op,
boost::asio::detail::wrapped_handler<boost::asio::io_service::strand,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,
loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > > >, boost::system::error_code>,
boost::_bi::bind_t<void, boost::_mfi::mf1<void,loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>,
boost::system::error_code const&>,
boost::_bi::list2<boost::_bi::value<boost::shared_ptr<loggly::collector::SecureNewlineTcpConnection<loggly::collector::StreamingAuthParser>
, boost::arg<1> (*)()> > > >::do_complete (owner=0x136da70,
base=0x7fc15404bf20) at/usr/local/include/boost/asio/detail/completion_handler.hpp:67
#29 0x000000000044376d in complete (bytes_transferred=0,
ec=@0x7fc181fd5db0: {m_val = 0, m_cat = 0x7fc18590a0a8}, owner=@0x136da70:
{<boost::asio::detail::service_base<boost::asio::detail::task_io_service>>
= {<boost::asio::io_service::service> = {<boost::noncopyable_::noncopyable>
= {<No data fields>}, _vptr.service = 0x4c8e50, key_ = {type_info_ =
0x4c8e70, id_ = 0x0}, owner_ = @0x710820, next_ = 0x0}, static id =
{<boost::asio::io_service::id> = {<boost::noncopyable_::noncopyable> = {<No
data fields>}, <No data fields>}, <No data fields>}}, one_thread_ = false,
mutex_ = {<boost::noncopyable_::noncopyable> = {<No data fields>}, mutex_ =
{__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 7, __kind = 0,
__spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000'
<repeats 12 times>, "\a", '\000' <repeats 26 times>, __align = 0}}, task_ =
0x136dd80, task_operation_ =
{<boost::asio::detail::task_io_service_operation> = {next_ = 0x0, func_ =
0, task_result_ = 0}, <No data fields>}, task_interrupted_ = false,
outstanding_work_ = {<std::__atomic2::__atomic_base<long>> = {_M_i =
20719}, <No data fields>}, op_queue_ = {<boost::noncopyable_::noncopyable>
= {<No data fields>}, front_ = 0x0, back_ = 0x0}, stopped_ = false,
shutdown_ = false, first_idle_thread_ = 0x7fc1827d6c60}, this=<optimized
out>) at
/usr/local/include/boost/asio/detail/task_io_service_operation.hpp:37
#30 boost::asio::detail::strand_service::do_complete (owner=0x136da70,
base=0x139d440, ec=@0x7fc181fd5db0: {m_val = 0, m_cat = 0x7fc18590a0a8}) at
/usr/local/include/boost/asio/detail/impl/strand_service.ipp:160
#31 0x0000000000427ac6 in complete (owner=@0x136da70:
{<boost::asio::detail::service_base<boost::asio::detail::task_io_service>>
= {<boost::asio::io_service::service> = {<boost::noncopyable_::noncopyable>
= {<No data fields>}, _vptr.service = 0x4c8e50, key_ = {type_info_ =
0x4c8e70, id_ = 0x0}, owner_ = @0x710820, next_ = 0x0}, static id =
{<boost::asio::io_service::id> = {<boost::noncopyable_::noncopyable> = {<No
data fields>}, <No data fields>}, <No data fields>}}, one_thread_ = false,
mutex_ = {<boost::noncopyable_::noncopyable> = {<No data fields>}, mutex_ =
{__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 7, __kind = 0,
__spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000'
<repeats 12 times>, "\a", '\000' <repeats 26 times>, __align = 0}}, task_ =
0x136dd80, task_operation_ =
{<boost::asio::detail::task_io_service_operation> = {next_ = 0x0, func_ =
0, task_result_ = 0}, <No data fields>}, task_interrupted_ = false,
outstanding_work_ = {<std::__atomic2::__atomic_base<long>> = {_M_i =
20719}, <No data fields>}, op_queue_ = {<boost::noncopyable_::noncopyable>
= {<No data fields>}, front_ = 0x0, back_ = 0x0}, stopped_ = false,
shutdown_ = false, first_idle_thread_ = 0x7fc1827d6c60}, this=0x139d440,
bytes_transferred=0, ec=@0x7fc181fd5db0: {m_val = 0, m_cat =
0x7fc18590a0a8}) at
/usr/local/include/boost/asio/detail/task_io_service_operation.hpp:37
#32 do_run_one (ec=<optimized out>, private_op_queue=<optimized out>,
this_thread=<optimized out>, lock=<optimized out>, this=<optimized out>) at
/usr/local/include/boost/asio/detail/impl/task_io_service.ipp:394
#33 boost::asio::detail::task_io_service::run (this=0x136da70,
ec=@0x7fc181fd5db0: {m_val = 0, m_cat = 0x7fc18590a0a8}) at
/usr/local/include/boost/asio/detail/impl/task_io_service.ipp:146
#34 0x0000000000435387 in run (this=<optimized out>) at
/usr/local/include/boost/asio/impl/io_service.ipp:59
#35 loggly::collector::Collector::io_thread (this=0x710420,
emitter=<optimized out>) at src/collector.cpp:276
#36 0x00007fc185bfcc5d in thread_proxy () from
/usr/local/lib/libboost_thread.so.1.50.0
#37 0x00007fc1864a6e9a in start_thread (arg=0x7fc181fd6700) at
pthread_create.c:308
#38 0x00007fc184e3fcbd in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#39 0x0000000000000000 in ?? ()
(and more)