Discussion:
[asio-users] Segfault in
Philip O'Toole
2013-10-09 03:57:45 UTC
Permalink
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>
, 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}}}},
<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>
, 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}}}},
<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>
, 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}}}},
<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>
, 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}}}},
<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>
, 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}}}},
<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>
, 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)
vf
2013-10-16 04:25:36 UTC
Permalink
#0  0x00007fc186982cd8 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
The actual crash seems to occur in the openssl library. Where does this
library come from? Does it match the openssl source the boost.asio was
compiled with?

If you compile libcrypto (as a shared or static library) with symbols, you
should be able to see exactly what is happening.
Philip O'Toole
2013-10-17 02:18:49 UTC
Permalink
Yeah, I saw that, but was wondering if it was ASIO's use of the library that might be the problem. The library is the one that comes with Ubuntu 12.04.

Compiling libcrypto from source does seem to be the next step, so I will try that. I will let people know what happens.

Thanks,

Philip
Post by vf
#0 0x00007fc186982cd8 in ?? () from /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
The actual crash seems to occur in the openssl library. Where does this
library come from? Does it match the openssl source the boost.asio was
compiled with?
If you compile libcrypto (as a shared or static library) with symbols, you
should be able to see exactly what is happening.
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk
_______________________________________________
asio-users mailing list
https://lists.sourceforge.net/lists/listinfo/asio-users
_______________________________________________
Using Asio? List your project at
http://think-async.com/Asio/WhoIsUsingAsio
Continue reading on narkive:
Loading...