• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

TFS 0.X Server crashing at close

potinho

Advanced OT User
Joined
Oct 11, 2009
Messages
1,402
Solutions
17
Reaction score
150
Location
Brazil
Good morning guys,

My server is crashing after save on global shutdown and making a core report. Someone can explain what is happening to me? Maybe something to fix? Thank you all.

C++:
[New LWP 9222]
[New LWP 9216]
[New LWP 9221]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000000000000000 in ?? ()
[Current thread is 1 (Thread 0x7f975bfff700 (LWP 9222))]
(gdb) bt
#0  0x0000000000000000 in ?? ()
#1  0x000055f71486047f in ServicePort::handle (this=0x7f97924a2540,
    acceptor=..., socket=0x7f9754067450, error=...) at server.cpp:170
#2  0x000055f71486dbad in boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<                                                                                                                                                             boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acc                                                                                                                                                             eptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost:                                                                                                                                                             :asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boo                                                                                                                                                             st::system::error_code const&>::eek:perator() (this=0x7f975bffebb0,
    p=0x7f97924a2540, a1=..., a2=0x7f9754067450, a3=...)
    at /usr/include/boost/bind/mem_fn_template.hpp:393
#3  0x000055f71486d92f in boost::_bi::list4<boost::_bi::value<ServicePort*>, boo                                                                                                                                                             st::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio:                                                                                                                                                             :ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boos                                                                                                                                                             t::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio                                                                                                                                                             ::stream_socket_service<boost::asio::ip::tcp> >[I]>, boost::arg<1> ([/I])()>::eek:perato                                                                                                                                                             r()<boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_soc                                                                                                                                                             ket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::a                                                                                                                                                             sio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost:                                                                                                                                                             :asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code                                                                                                                                                              const&>, boost::_bi::rrlist1<boost::system::error_code const&> > (
    this=0x7f975bffebc0, f=..., a=...) at /usr/include/boost/bind/bind.hpp:463
#4  0x000055f71486d699 in boost::_bi::bind_t<void, boost::_mfi::mf3<void, Servic                                                                                                                                                             ePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp                                                                                                                                                             ---Type <return> to continue, or q <return> to quit---
, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::b                                                                                                                                                             asic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boos                                                                                                                                                             t::asio::ip::tcp> >[I], boost::system::error_code const&>, boost::_bi::list4<boost                                                                                                                                                             ::_bi::value<ServicePort[/I]>, boost::_bi::value<boost::shared_ptr<boost::asio::bas                                                                                                                                                             ic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<bo                                                                                                                                                             ost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<bo                                                                                                                                                             ost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >[I]>                                                                                                                                                             , boost::arg<1> ([/I])()> >::eek:perator()<boost::system::error_code const&> (
    this=0x7f975bffebb0, a1=...) at /usr/include/boost/bind/bind.hpp:1306
#5  0x000055f71486d4bc in boost::asio::detail::binder1<boost::[I]bi::bind_t<void,                                                                                                                                                              boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket[/I]                                                                                                                                                             acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio:                                                                                                                                                             :ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asi                                                                                                                                                             o::stream_socket_service<boost::asio::ip::tcp> >[I], boost::system::error_code con                                                                                                                                                             st&>, boost::_bi::list4<boost::_bi::value<ServicePort[/I]>, boost::_bi::value<boost                                                                                                                                                             ::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asi                                                                                                                                                             o::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost:                                                                                                                                                             :asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_serv                                                                                                                                                             ice<boost::asio::ip::tcp> >[I]>, boost::arg<1> ([/I])()> >, boost::system::error_code                                                                                                                                                             >::eek:perator() (this=0x7f975bffebb0)
    at /usr/include/boost/asio/detail/bind_handler.hpp:47
#6  0x000055f71486d0f0 in boost::asio::asio_handler_invoke<boost::asio::detail::                                                                                                                                                             binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shar                                                                                                                                                             ---Type <return> to continue, or q <return> to quit---
ed_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::soc                                                                                                                                                             ket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket                                                                                                                                                             <boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp>                                                                                                                                                              >[I], boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<Servi                                                                                                                                                             cePort[/I]>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor                                                                                                                                                             <boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp                                                                                                                                                             > > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp                                                                                                                                                             , boost::asio::stream_socket_service<boost::asio::ip::tcp> >[I]>, boost::arg<1> ([/I]                                                                                                                                                             )()> >, boost::system::error_code> > (function=...)
    at /usr/include/boost/asio/handler_invoke_hook.hpp:69
#7  0x000055f71486c514 in boost_asio_handler_invoke_helpers::invoke<boost::asio:                                                                                                                                                             :detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, bo                                                                                                                                                             ost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::                                                                                                                                                             asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stre                                                                                                                                                             am_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::                                                                                                                                                             ip::tcp> >[I], boost::system::error_code const&>, boost::_bi::list4<boost::_bi::va                                                                                                                                                             lue<ServicePort[/I]>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket                                                                                                                                                             _acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio                                                                                                                                                             ::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio                                                                                                                                                             ::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >[I]>, boost::                                                                                                                                                             arg<1> ([/I])()> >, boost::system::error_code>, boost::_bi::bind_t<void, boost::_mf                                                                                                                                                             i::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<b                                                                                                                                                             oost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp>                                                                                                                                                              ---Type <return> to continue, or q <return> to quit---
[QUOTE]
>, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_                                                                                                                                                             socket_service<boost::asio::ip::tcp> >[I], boost::system::error_code const&>, boos                                                                                                                                                             t::[I]bi::list4<boost::_bi::value<ServicePort[/I]>, boost::_bi::value<boost::shared_p                                                                                                                                                             tr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket[/I]                                                                                                                                                             acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::bas                                                                                                                                                             ic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost:                                                                                                                                                             :asio::ip::tcp> >[I]>, boost::arg<1> ([/I])()> > > (function=..., context=...)
[/QUOTE]
    at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:37
#8  0x000055f71486b62c in boost::asio::detail::reactive_socket_accept_op<boost::                                                                                                                                                             asio::basic_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boos                                                                                                                                                             t::asio::ip::tcp> >, boost::asio::ip::tcp, boost::_bi::bind_t<void, boost::_mfi:                                                                                                                                                             :mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boo                                                                                                                                                             st::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> >                                                                                                                                                              >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_so                                                                                                                                                             cket_service<boost::asio::ip::tcp> >[I], boost::system::error_code const&>, boost:                                                                                                                                                             :_bi::list4<boost::_bi::value<ServicePort[/I]>, boost::_bi::value<boost::shared_ptr                                                                                                                                                             <boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_ac                                                                                                                                                             ceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic                                                                                                                                                             _stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::a                                                                                                                                                             sio::ip::tcp> >[I]>, boost::arg<1> ([/I])()> > >::do_complete (
    owner=0x55f715633900, base=0x7f9754050830)
    at /usr/include/boost/asio/detail/reactive_socket_accept_op.hpp:123
#9  0x000055f714861789 in boost::asio::detail::task_io_service_operation::comple                                                                                                                                                             ---Type <return> to continue, or q <return> to quit---
te (this=0x7f9754050830, owner=..., ec=..., bytes_transferred=0) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:38
#10 0x000055f714862119 in boost::asio::detail::epoll_reactor::descriptor_state::do_complete (owner=0x55f715633900, base=0x7f97909945c0, ec=..., bytes_transferred=1) at /usr/include/boost/asio/detail/impl/epoll_reactor.ipp:704
#11 0x000055f714861789 in boost::asio::detail::task_io_service_operation::complete (this=0x7f97909945c0, owner=..., ec=..., bytes_transferred=1) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:38
#12 0x000055f714862721 in boost::asio::detail::task_io_service::do_run_one (this=0x55f715633900, lock=..., this_thread=..., ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:372
#13 0x000055f7148623fb in boost::asio::detail::task_io_service::run (this=0x55f715633900, ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:149
#14 0x000055f714862883 in boost::asio::io_service::run (this=0x7ffcc82304f8) at /usr/include/boost/asio/impl/io_service.ipp:59
#15 0x000055f71486e167 in boost::_mfi::mf0<unsigned long, boost::asio::io_service>::eek:perator() (this=0x55f715634248, p=0x7ffcc82304f8) at /usr/include/boost/bind/mem_fn_template.hpp:49
#16 0x000055f71486e0cc in boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> >::eek:perator()<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list0> (this=0x55f715634258, f=..., a=...)
    at /usr/include/boost/bind/bind.hpp:249
#17 0x000055f71486e05c in boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > >::eek:perator() (this=0x55f715634248)
    at /usr/include/boost/bind/bind.hpp:1294
#18 0x000055f71486df7e in boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >::run (
    this=0x55f715634090) at /usr/include/boost/thread/detail/thread.hpp:116
#19 0x00007f97a5ff5bcd in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
#20 0x00007f97a5dcc6db in start_thread (arg=0x7f975bfff700) at pthread_create.c:463
#21 0x00007f97a4b7461f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
 
Last edited:
Happened again. I see something related to server.cpp, im attaching this file.

C++:
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000563e60cef477 in ServicePort::handle (this=0x7f672e4a3150,
    acceptor=..., socket=0x7f66f00755b0, error=...) at server.cpp:170
170                             if(m_services.front()->isSingleSocket())
[Current thread is 1 (Thread 0x7f673d963700 (LWP 17706))]
(gdb) bt
#0  0x0000563e60cef477 in ServicePort::handle (this=0x7f672e4a3150, acceptor=..., socket=0x7f66f00755b0, error=...) at server.cpp:170
#1  0x0000563e60cfcbad in boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>::operator() (this=0x7f673d962bb0, p=0x7f672e4a3150, a1=..., a2=0x7f66f00755b0, a3=...)
    at /usr/include/boost/bind/mem_fn_template.hpp:393
#2  0x0000563e60cfc92f in boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()>::operator()<boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::rrlist1<boost::system::error_code const&> > (this=0x7f673d962bc0, f=..., a=...) at /usr/include/boost/bind/bind.hpp:463
#3  0x0000563e60cfc699 in boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >::operator()<boost::system::error_code const&> (this=0x7f673d962bb0, a1=...) at /usr/include/boost/bind/bind.hpp:1306
#4  0x0000563e60cfc4bc in boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code>::operator() (this=0x7f673d962bb0) at /usr/include/boost/asio/detail/bind_handler.hpp:47
#5  0x0000563e60cfc0f0 in boost::asio::asio_handler_invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code> > (function=...) at /usr/include/boost/asio/handler_invoke_hook.hpp:69
#6  0x0000563e60cfb514 in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code>, boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> > > (function=..., context=...) at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:37
#7  0x0000563e60cfa62c in boost::asio::detail::reactive_socket_accept_op<boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >, boost::asio::ip::tcp, boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> > >::do_complete (
    owner=0x563e62e52900, base=0x7f66f00a1b50) at /usr/include/boost/asio/detail/reactive_socket_accept_op.hpp:123
#8  0x0000563e60cf0789 in boost::asio::detail::task_io_service_operation::complete (this=0x7f66f00a1b50, owner=..., ec=..., bytes_transferred=0) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:38
#9  0x0000563e60cf1119 in boost::asio::detail::epoll_reactor::descriptor_state::do_complete (owner=0x563e62e52900, base=0x7f672caf0180, ec=..., bytes_transferred=1) at /usr/include/boost/asio/detail/impl/epoll_reactor.ipp:704
#10 0x0000563e60cf0789 in boost::asio::detail::task_io_service_operation::complete (this=0x7f672caf0180, owner=..., ec=..., bytes_transferred=1) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:38
#11 0x0000563e60cf1721 in boost::asio::detail::task_io_service::do_run_one (this=0x563e62e52900, lock=..., this_thread=..., ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:372
#12 0x0000563e60cf13fb in boost::asio::detail::task_io_service::run (this=0x563e62e52900, ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:149
#13 0x0000563e60cf1883 in boost::asio::io_service::run (this=0x7fff28bb5ca8) at /usr/include/boost/asio/impl/io_service.ipp:59
#14 0x0000563e60cfd167 in boost::_mfi::mf0<unsigned long, boost::asio::io_service>::operator() (this=0x563e62e53248, p=0x7fff28bb5ca8) at /usr/include/boost/bind/mem_fn_template.hpp:49
#15 0x0000563e60cfd0cc in boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> >::operator()<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list0> (this=0x563e62e53258, f=..., a=...)
    at /usr/include/boost/bind/bind.hpp:249
#16 0x0000563e60cfd05c in boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > >::operator() (this=0x563e62e53248)
    at /usr/include/boost/bind/bind.hpp:1294
#17 0x0000563e60cfcf7e in boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >::run (
    this=0x563e62e53090) at /usr/include/boost/thread/detail/thread.hpp:116
#18 0x00007f67438e4bcd in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
#19 0x00007f67436bb6db in start_thread (arg=0x7f673d963700) at pthread_create.c:463
#20 0x00007f674246361f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
 

Attachments

  • server cpp and h.zip
    4.1 KB · Views: 2 · VirusTotal
That dump seems useless, post a full dump of all threads, since it's likely coming from the other thread

Code:
thread apply all bt full
 
That dump seems useless, post a full dump of all threads, since it's likely coming from the other thread

Code:
thread apply all bt full
this?

C++:
[New LWP 17706]
[New LWP 17698]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./extremeot'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000563e60cef477 in ServicePort::handle (this=0x7f672e4a3150,
    acceptor=..., socket=0x7f66f00755b0, error=...) at server.cpp:170

warning: Source file is more recent than executable.
170                             if(m_services.front()->isSingleSocket())
[Current thread is 1 (Thread 0x7f673d963700 (LWP 17706))]
(gdb) bt full
#0  0x0000563e60cef477 in ServicePort::handle (this=0x7f672e4a3150,
    acceptor=..., socket=0x7f66f00755b0, error=...) at server.cpp:170
        error = {m_val = 0, m_cat = 0x7f6744004100}
        ip = {impl_ = {data_ = {base = {sa_family = 2,
                sa_data = "\220\320[\224\204A\000\000\000\000\000\000\000"},
              v4 = {sin_family = 2, sin_port = 53392, sin_addr = {
                  s_addr = 1099207771},
                sin_zero = "\000\000\000\000\000\000\000"}, v6 = {
                sin6_family = 2, sin6_port = 53392,
                sin6_flowinfo = 1099207771, sin6_addr = {__in6_u = {
                    __u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0,
                      0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
                sin6_scope_id = 0}}}}
        remoteIp = 1099207771
        connection = {px = 0x7f66f0050950, pn = {pi_ = 0x7f672e4a4310}}
#1  0x0000563e60cfcbad in boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<                                                                                                                                                             boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acc                                                                                                                                                             eptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost:                                                                                                                                                             :asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boo                                                                                                                                                             st::system::error_code const&>::operator() (this=0x7f673d962bb0,
    p=0x7f672e4a3150, a1=..., a2=0x7f66f00755b0, a3=...)
    at /usr/include/boost/bind/mem_fn_template.hpp:393
No locals.
---Type <return> to continue, or q <return> to quit---
#2  0x0000563e60cfc92f in boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()>::operator()<boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::rrlist1<boost::system::error_code const&> > (this=0x7f673d962bc0, f=..., a=...) at /usr/include/boost/bind/bind.hpp:463
No locals.
#3  0x0000563e60cfc699 in boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >::operator()<boost::system::error_code const&> (this=0x7f673d962bb0, a1=...) at /usr/include/boost/bind/bind.hpp:1306
        a = {a1_ = @0x7f673d962be0}
#4  0x0000563e60cfc4bc in boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code>::operator() (this=0x7f673d962bb0) at /usr/include/boost/asio/detail/bind_handler.hpp:47
No locals.
#5  0x0000563e60cfc0f0 in boost::asio::asio_handler_invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code> > (function=...) at /usr/include/boost/asio/handler_invoke_hook.hpp:69
No locals.
#6  0x0000563e60cfb514 in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code>, boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> > > (function=..., context=...) at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:37
No locals.
#7  0x0000563e60cfa62c in boost::asio::detail::reactive_socket_accept_op<boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >, boost::asio::ip::tcp, boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> > >::do_complete (
    owner=0x563e62e52900, base=0x7f66f00a1b50) at /usr/include/boost/asio/detail/reactive_socket_accept_op.hpp:123
        b = {<boost::asio::detail::noncopyable> = {<No data fields>}, <No data fields>}
        o = 0x7f66f00a1b50
        p = {h = 0x7f673d962bb0, v = 0x0, p = 0x0}
        handler = {handler_ = {f_ = {f_ = (void (ServicePort::*)(ServicePort * const, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >,
    boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > *,
    const boost::system::error_code &)) 0x563e60cef27e <ServicePort::handle(boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&)>},
            l_ = {<boost::_bi::storage4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()>> = {<boost::_bi::storage3<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*> >> = {<boost::_bi::storage2<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > > >> = {<boost::_bi::storage1<boost::_bi::value<ServicePort*> >> = {a1_ = {t_ = 0x7f672e4a3150}}, a2_ = {t_ = {px = 0x7f672e4a4420, pn = {pi_ = 0x7f672e4a2f10}}}}, a3_ = {
                    t_ = 0x7f66f00755b0}}, <No data fields>}, <No data fields>}}, arg1_ = {m_val = 0, m_cat = 0x7f6744004100}}
#8  0x0000563e60cf0789 in boost::asio::detail::task_io_service_operation::complete (this=0x7f66f00a1b50, owner=..., ec=..., bytes_transferred=0) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:38
No locals.
#9  0x0000563e60cf1119 in boost::asio::detail::epoll_reactor::descriptor_state::do_complete (owner=0x563e62e52900, base=0x7f672caf0180, ec=..., bytes_transferred=1) at /usr/include/boost/asio/detail/impl/epoll_reactor.ipp:704
        op = 0x7f66f00a1b50
        descriptor_data = 0x7f672caf0180
        events = 1
#10 0x0000563e60cf0789 in boost::asio::detail::task_io_service_operation::complete (this=0x7f672caf0180, owner=..., ec=..., bytes_transferred=1) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:38
No locals.
#11 0x0000563e60cf1721 in boost::asio::detail::task_io_service::do_run_one (this=0x563e62e52900, lock=..., this_thread=..., ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:372
        task_result = 1
        on_exit = {task_io_service_ = 0x563e62e52900, lock_ = 0x7f673d962d50, this_thread_ = 0x7f673d962d80}
        o = 0x7f672caf0180
        more_handlers = true
#12 0x0000563e60cf13fb in boost::asio::detail::task_io_service::run (this=0x563e62e52900, ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:149
        this_thread = {<boost::asio::detail::thread_info_base> = {<boost::asio::detail::noncopyable> = {<No data fields>}, reusable_memory_ = 0x7f672dab7110}, private_op_queue = {<boost::asio::detail::noncopyable> = {<No data fields>},
            front_ = 0x0, back_ = 0x0}, private_outstanding_work = 0}
---Type <return> to continue, or q <return> to quit---
        ctx = {<boost::asio::detail::noncopyable> = {<No data fields>}, key_ = 0x563e62e52900, value_ = 0x7f673d962d80, next_ = 0x0}
        lock = {<boost::asio::detail::noncopyable> = {<No data fields>}, mutex_ = @0x563e62e52930, locked_ = false}
        n = 44945537
#13 0x0000563e60cf1883 in boost::asio::io_service::run (this=0x7fff28bb5ca8) at /usr/include/boost/asio/impl/io_service.ipp:59
        ec = {m_val = 0, m_cat = 0x7f6744004100}
        s = 0
#14 0x0000563e60cfd167 in boost::_mfi::mf0<unsigned long, boost::asio::io_service>::operator() (this=0x563e62e53248, p=0x7fff28bb5ca8) at /usr/include/boost/bind/mem_fn_template.hpp:49
No locals.
#15 0x0000563e60cfd0cc in boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> >::operator()<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list0> (this=0x563e62e53258, f=..., a=...)
    at /usr/include/boost/bind/bind.hpp:249
No locals.
#16 0x0000563e60cfd05c in boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > >::operator() (this=0x563e62e53248)
    at /usr/include/boost/bind/bind.hpp:1294
        a = {<No data fields>}
#17 0x0000563e60cfcf7e in boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >::run (
    this=0x563e62e53090) at /usr/include/boost/thread/detail/thread.hpp:116
No locals.
#18 0x00007f67438e4bcd in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
No symbol table info available.
#19 0x00007f67436bb6db in start_thread (arg=0x7f673d963700) at pthread_create.c:463
        pd = 0x7f673d963700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140081391613696, 8226701326283884221, 140081391611840, 0, 94825947148432, 140733876754896, -8294110538978113859, -8294052080400283971}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0,
              0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#20 0x00007f674246361f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
 
this?

C++:
[New LWP 17706]
[New LWP 17698]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./extremeot'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000563e60cef477 in ServicePort::handle (this=0x7f672e4a3150,
    acceptor=..., socket=0x7f66f00755b0, error=...) at server.cpp:170

warning: Source file is more recent than executable.
170                             if(m_services.front()->isSingleSocket())
[Current thread is 1 (Thread 0x7f673d963700 (LWP 17706))]
(gdb) bt full
#0  0x0000563e60cef477 in ServicePort::handle (this=0x7f672e4a3150,
    acceptor=..., socket=0x7f66f00755b0, error=...) at server.cpp:170
        error = {m_val = 0, m_cat = 0x7f6744004100}
        ip = {impl_ = {data_ = {base = {sa_family = 2,
                sa_data = "\220\320[\224\204A\000\000\000\000\000\000\000"},
              v4 = {sin_family = 2, sin_port = 53392, sin_addr = {
                  s_addr = 1099207771},
                sin_zero = "\000\000\000\000\000\000\000"}, v6 = {
                sin6_family = 2, sin6_port = 53392,
                sin6_flowinfo = 1099207771, sin6_addr = {__in6_u = {
                    __u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0,
                      0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
                sin6_scope_id = 0}}}}
        remoteIp = 1099207771
        connection = {px = 0x7f66f0050950, pn = {pi_ = 0x7f672e4a4310}}
#1  0x0000563e60cfcbad in boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<                                                                                                                                                             boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acc                                                                                                                                                             eptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost:                                                                                                                                                             :asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boo                                                                                                                                                             st::system::error_code const&>::operator() (this=0x7f673d962bb0,
    p=0x7f672e4a3150, a1=..., a2=0x7f66f00755b0, a3=...)
    at /usr/include/boost/bind/mem_fn_template.hpp:393
No locals.
---Type <return> to continue, or q <return> to quit---
#2  0x0000563e60cfc92f in boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()>::operator()<boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::rrlist1<boost::system::error_code const&> > (this=0x7f673d962bc0, f=..., a=...) at /usr/include/boost/bind/bind.hpp:463
No locals.
#3  0x0000563e60cfc699 in boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >::operator()<boost::system::error_code const&> (this=0x7f673d962bb0, a1=...) at /usr/include/boost/bind/bind.hpp:1306
        a = {a1_ = @0x7f673d962be0}
#4  0x0000563e60cfc4bc in boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code>::operator() (this=0x7f673d962bb0) at /usr/include/boost/asio/detail/bind_handler.hpp:47
No locals.
#5  0x0000563e60cfc0f0 in boost::asio::asio_handler_invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code> > (function=...) at /usr/include/boost/asio/handler_invoke_hook.hpp:69
No locals.
#6  0x0000563e60cfb514 in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code>, boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> > > (function=..., context=...) at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:37
No locals.
#7  0x0000563e60cfa62c in boost::asio::detail::reactive_socket_accept_op<boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >, boost::asio::ip::tcp, boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> > >::do_complete (
    owner=0x563e62e52900, base=0x7f66f00a1b50) at /usr/include/boost/asio/detail/reactive_socket_accept_op.hpp:123
        b = {<boost::asio::detail::noncopyable> = {<No data fields>}, <No data fields>}
        o = 0x7f66f00a1b50
        p = {h = 0x7f673d962bb0, v = 0x0, p = 0x0}
        handler = {handler_ = {f_ = {f_ = (void (ServicePort::*)(ServicePort * const, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >,
    boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > *,
    const boost::system::error_code &)) 0x563e60cef27e <ServicePort::handle(boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&)>},
            l_ = {<boost::_bi::storage4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()>> = {<boost::_bi::storage3<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*> >> = {<boost::_bi::storage2<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > > >> = {<boost::_bi::storage1<boost::_bi::value<ServicePort*> >> = {a1_ = {t_ = 0x7f672e4a3150}}, a2_ = {t_ = {px = 0x7f672e4a4420, pn = {pi_ = 0x7f672e4a2f10}}}}, a3_ = {
                    t_ = 0x7f66f00755b0}}, <No data fields>}, <No data fields>}}, arg1_ = {m_val = 0, m_cat = 0x7f6744004100}}
#8  0x0000563e60cf0789 in boost::asio::detail::task_io_service_operation::complete (this=0x7f66f00a1b50, owner=..., ec=..., bytes_transferred=0) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:38
No locals.
#9  0x0000563e60cf1119 in boost::asio::detail::epoll_reactor::descriptor_state::do_complete (owner=0x563e62e52900, base=0x7f672caf0180, ec=..., bytes_transferred=1) at /usr/include/boost/asio/detail/impl/epoll_reactor.ipp:704
        op = 0x7f66f00a1b50
        descriptor_data = 0x7f672caf0180
        events = 1
#10 0x0000563e60cf0789 in boost::asio::detail::task_io_service_operation::complete (this=0x7f672caf0180, owner=..., ec=..., bytes_transferred=1) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:38
No locals.
#11 0x0000563e60cf1721 in boost::asio::detail::task_io_service::do_run_one (this=0x563e62e52900, lock=..., this_thread=..., ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:372
        task_result = 1
        on_exit = {task_io_service_ = 0x563e62e52900, lock_ = 0x7f673d962d50, this_thread_ = 0x7f673d962d80}
        o = 0x7f672caf0180
        more_handlers = true
#12 0x0000563e60cf13fb in boost::asio::detail::task_io_service::run (this=0x563e62e52900, ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:149
        this_thread = {<boost::asio::detail::thread_info_base> = {<boost::asio::detail::noncopyable> = {<No data fields>}, reusable_memory_ = 0x7f672dab7110}, private_op_queue = {<boost::asio::detail::noncopyable> = {<No data fields>},
            front_ = 0x0, back_ = 0x0}, private_outstanding_work = 0}
---Type <return> to continue, or q <return> to quit---
        ctx = {<boost::asio::detail::noncopyable> = {<No data fields>}, key_ = 0x563e62e52900, value_ = 0x7f673d962d80, next_ = 0x0}
        lock = {<boost::asio::detail::noncopyable> = {<No data fields>}, mutex_ = @0x563e62e52930, locked_ = false}
        n = 44945537
#13 0x0000563e60cf1883 in boost::asio::io_service::run (this=0x7fff28bb5ca8) at /usr/include/boost/asio/impl/io_service.ipp:59
        ec = {m_val = 0, m_cat = 0x7f6744004100}
        s = 0
#14 0x0000563e60cfd167 in boost::_mfi::mf0<unsigned long, boost::asio::io_service>::operator() (this=0x563e62e53248, p=0x7fff28bb5ca8) at /usr/include/boost/bind/mem_fn_template.hpp:49
No locals.
#15 0x0000563e60cfd0cc in boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> >::operator()<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list0> (this=0x563e62e53258, f=..., a=...)
    at /usr/include/boost/bind/bind.hpp:249
No locals.
#16 0x0000563e60cfd05c in boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > >::operator() (this=0x563e62e53248)
    at /usr/include/boost/bind/bind.hpp:1294
        a = {<No data fields>}
#17 0x0000563e60cfcf7e in boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >::run (
    this=0x563e62e53090) at /usr/include/boost/thread/detail/thread.hpp:116
No locals.
#18 0x00007f67438e4bcd in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
No symbol table info available.
#19 0x00007f67436bb6db in start_thread (arg=0x7f673d963700) at pthread_create.c:463
        pd = 0x7f673d963700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140081391613696, 8226701326283884221, 140081391611840, 0, 94825947148432, 140733876754896, -8294110538978113859, -8294052080400283971}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0,
              0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#20 0x00007f674246361f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No, you wrote the command bt full instead of thread apply all bt full
 
No, you wrote the command bt full instead of thread apply all bt full
ah, ok. Sorry, follow:

C++:
[New LWP 17706]
[New LWP 17698]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./extremeot'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000563e60cef477 in ServicePort::handle (this=0x7f672e4a3150,
    acceptor=..., socket=0x7f66f00755b0, error=...) at server.cpp:170

warning: Source file is more recent than executable.
170                             if(m_services.front()->isSingleSocket())
[Current thread is 1 (Thread 0x7f673d963700 (LWP 17706))]
(gdb) thread apply all bt full

Thread 2 (Thread 0x7f674518e740 (LWP 17698)):
#0  0x00007f67436c1ad3 in futex_wait_cancelable (private=<optimized out>,
    expected=0, futex_word=0x563e62e53138)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
        __ret = -512
        oldtype = 0
        err = <optimized out>
        oldtype = <optimized out>
        err = <optimized out>
        __ret = <optimized out>
        resultvar = <optimized out>
        __arg4 = <optimized out>
        __arg3 = <optimized out>
        __arg2 = <optimized out>
        __arg1 = <optimized out>
        _a4 = <optimized out>
        _a3 = <optimized out>
        _a2 = <optimized out>
        _a1 = <optimized out>
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x563e62e530e8,
    cond=0x563e62e53110) at pthread_cond_wait.c:502
        spin = 0
---Type <return> to continue, or q <return> to quit---
        buffer = {__routine = 0x7f67436c1770 <__condvar_cleanup_waiting>,
          __arg = 0x7fff28bb5930, __canceltype = 1, __prev = 0x0}
        cbuffer = {wseq = 0, cond = 0x563e62e53110, mutex = 0x563e62e530e8,
          private = 0}
        rt = <optimized out>
        err = <optimized out>
        g = 0
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = <optimized out>
        seq = 0
        private = <optimized out>
        maxspin = <optimized out>
        err = <optimized out>
        result = <optimized out>
        wseq = <optimized out>
        g = <optimized out>
        seq = <optimized out>
        flags = <optimized out>
        private = <optimized out>
        signals = <optimized out>
---Type <return> to continue, or q <return> to quit---
        g1_start = <optimized out>
        spin = <optimized out>
        buffer = <optimized out>
        cbuffer = <optimized out>
        rt = <optimized out>
        s = <optimized out>
#2  __pthread_cond_wait (cond=0x563e62e53110, mutex=0x563e62e530e8)
    at pthread_cond_wait.c:655
No locals.
#3  0x00007f67438ecb5d in boost::condition_variable::wait(boost::unique_lock<boo                                                                                                                                                             st::mutex>&) () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
No symbol table info available.
#4  0x00007f67438e4d14 in boost::thread::join_noexcept() ()
   from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
No symbol table info available.
#5  0x0000563e60c6cca0 in boost::thread::join (this=0x563e62e53070)
    at /usr/include/boost/thread/detail/thread.hpp:775
No locals.
#6  0x0000563e60cefcae in ServiceManager::run (this=0x7fff28bb5ca0)
    at server.cpp:249
        it = {px = 0x563e62e53070, pn = {pi_ = 0x563e62e533d0}}
        threads = std::vector of length 1, capacity 1 = {{px = 0x563e62e53070,
            pn = {pi_ = 0x563e62e533d0}}}
---Type <return> to continue, or q <return> to quit---
        __PRETTY_FUNCTION__ = "void ServiceManager::run()"
#7  0x0000563e60c68af2 in main (argc=1, argv=0x7fff28bb5ee8) at otserv.cpp:350
        args = std::vector of length 1, capacity 1 = {"./extremeot"}
        servicer = {<boost::noncopyable_::noncopyable> = {<No data fields>},
          _vptr.ServiceManager = 0x563e6106ab00 <vtable for ServiceManager+16>,                                                                                                                                                              m_io_service = {<boost::asio::detail::noncopyable> = {<No data fields>},
            service_registry_ = 0x563e62e528b0, impl_ = @0x563e62e52900},
          deathTimer = {<boost::asio::basic_io_object<boost::asio::deadline_time                                                                                                                                                             r_service<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::                                                                                                                                                             ptime> >, false>> = {service = @0x563e62e529e0,
              implementation = {<boost::asio::detail::noncopyable> = {<No data f                                                                                                                                                             ields>},
                expiry = {<boost::date_time::base_time<boost::posix_time::ptime,                                                                                                                                                              boost::date_time::counted_time_system<boost::date_time::counted_time_rep<boost:                                                                                                                                                             :posix_time::millisec_posix_time_system_config> > >> = {<boost::operators_impl::                                                                                                                                                             less_than_comparable<boost::posix_time::ptime, boost::operators_impl::equality_c                                                                                                                                                             omparable<boost::posix_time::ptime, boost::posix_time::ptime, boost::operators_i                                                                                                                                                             mpl::operators_detail::empty_base<boost::posix_time::ptime>, boost::operators_im                                                                                                                                                             pl::operators_detail::false_t>, boost::operators_impl::operators_detail::empty_b                                                                                                                                                             ase<boost::posix_time::ptime>, boost::operators_impl::operators_detail::true_t>>                                                                                                                                                              = {<boost::operators_impl::less_than_comparable1<boost::posix_time::ptime, boos                                                                                                                                                             t::operators_impl::equality_comparable<boost::posix_time::ptime, boost::posix_ti                                                                                                                                                             me::ptime, boost::operators_impl::operators_detail::empty_base<boost::posix_time                                                                                                                                                             ::ptime>---Type <return> to continue, or q <return> to quit---
, boost::operators_impl::operators_detail::false_t> >> = {<boost::operators_impl                                                                                                                                                             ::equality_comparable<boost::posix_time::ptime, boost::posix_time::ptime, boost:                                                                                                                                                             :operators_impl::operators_detail::empty_base<boost::posix_time::ptime>, boost::                                                                                                                                                             operators_impl::operators_detail::false_t>> = {<boost::operators_impl::equality_                                                                                                                                                             comparable1<boost::posix_time::ptime, boost::operators_impl::operators_detail::e                                                                                                                                                             mpty_base<boost::posix_time::ptime> >> = {<boost::operators_impl::operators_deta                                                                                                                                                             il::empty_base<boost::posix_time::ptime>> = {<No data fields>}, <No data fields>                                                                                                                                                             }, <No data fields>}, <No data fields>}, <No data fields>}, time_ = {
                      time_count_ = {
                        value_ = 212523554405387452}}}, <No data fields>},
                might_have_pending_waits = true, timer_data = {
                  op_queue_ = {<boost::asio::detail::noncopyable> = {<No data fi                                                                                                                                                             elds>}, front_ = 0x7f67112e05d0, back_ = 0x7f67112e05d0}, heap_index_ = 0,
                  next_ = 0x0, prev_ = 0x0}}}, <No data fields>},
          running = false, m_acceptors = std::map with 0 elements}
        sigh = {__sigaction_handler = {sa_handler = 0x1, sa_sigaction = 0x1},
          sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0,
          sa_restorer = 0x563e60d4ef60 <__libc_csu_init>}

Thread 1 (Thread 0x7f673d963700 (LWP 17706)):
#0  0x0000563e60cef477 in ServicePort::handle (this=0x7f672e4a3150,
    acceptor=..., socket=0x7f66f00755b0, error=...) at server.cpp:170
        error = {m_val = 0, m_cat = 0x7f6744004100}
---Type <return> to continue, or q <return> to quit---
        ip = {impl_ = {data_ = {base = {sa_family = 2, sa_data = "\220\320[\224\204A\000\000\000\000\000\000\000"}, v4 = {sin_family = 2, sin_port = 53392, sin_addr = {s_addr = 1099207771}, sin_zero = "\000\000\000\000\000\000\000"},
              v6 = {sin6_family = 2, sin6_port = 53392, sin6_flowinfo = 1099207771, sin6_addr = {__in6_u = {__u6_addr8 = '\000' <repeats 15 times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0, 0}}},
                sin6_scope_id = 0}}}}
        remoteIp = 1099207771
        connection = {px = 0x7f66f0050950, pn = {pi_ = 0x7f672e4a4310}}
#1  0x0000563e60cfcbad in boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>::operator() (this=0x7f673d962bb0, p=0x7f672e4a3150, a1=..., a2=0x7f66f00755b0, a3=...)
    at /usr/include/boost/bind/mem_fn_template.hpp:393
No locals.
#2  0x0000563e60cfc92f in boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()>::operator()<boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::rrlist1<boost::system::error_code const&> > (this=0x7f673d962bc0, f=..., a=...) at /usr/include/boost/bind/bind.hpp:463
No locals.
#3  0x0000563e60cfc699 in boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >::operator()<boost::system::error_code const&> (this=0x7f673d962bb0, a1=...) at /usr/include/boost/bind/bind.hpp:1306
        a = {a1_ = @0x7f673d962be0}
#4  0x0000563e60cfc4bc in boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code>::operator() (this=0x7f673d962bb0) at /usr/include/boost/asio/detail/bind_handler.hpp:47
No locals.
#5  0x0000563e60cfc0f0 in boost::asio::asio_handler_invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code> > (function=...) at /usr/include/boost/asio/handler_invoke_hook.hpp:69
No locals.
#6  0x0000563e60cfb514 in boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder1<boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> >, boost::system::error_code>, boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> > > (function=..., context=...) at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:37
No locals.
#7  0x0000563e60cfa62c in boost::asio::detail::reactive_socket_accept_op<boost::asio::basic_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >, boost::asio::ip::tcp, boost::_bi::bind_t<void, boost::_mfi::mf3<void, ServicePort, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&>, boost::_bi::list4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()> > >::do_complete (
    owner=0x563e62e52900, base=0x7f66f00a1b50) at /usr/include/boost/asio/detail/reactive_socket_accept_op.hpp:123
        b = {<boost::asio::detail::noncopyable> = {<No data fields>}, <No data fields>}
        o = 0x7f66f00a1b50
        p = {h = 0x7f673d962bb0, v = 0x0, p = 0x0}
        handler = {handler_ = {f_ = {f_ = (void (ServicePort::*)(ServicePort * const, boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >,
    boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > *,
    const boost::system::error_code &)) 0x563e60cef27e <ServicePort::handle(boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > >, boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*, boost::system::error_code const&)>},
            l_ = {<boost::_bi::storage4<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*>, boost::arg<1> (*)()>> = {<boost::_bi::storage3<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > >, boost::_bi::value<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> >*> >> = {<boost::_bi::storage2<boost::_bi::value<ServicePort*>, boost::_bi::value<boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp, boost::asio::socket_acceptor_service<boost::asio::ip::tcp> > > > >> = {<boost::_bi::storage1<boost::_bi::value<ServicePort*> >> = {a1_ = {t_ = 0x7f672e4a3150}}, a2_ = {t_ = {px = 0x7f672e4a4420, pn = {pi_ = 0x7f672e4a2f10}}}}, a3_ = {
                    t_ = 0x7f66f00755b0}}, <No data fields>}, <No data fields>}}, arg1_ = {m_val = 0, m_cat = 0x7f6744004100}}
#8  0x0000563e60cf0789 in boost::asio::detail::task_io_service_operation::complete (this=0x7f66f00a1b50, owner=..., ec=..., bytes_transferred=0) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:38
No locals.
#9  0x0000563e60cf1119 in boost::asio::detail::epoll_reactor::descriptor_state::do_complete (owner=0x563e62e52900, base=0x7f672caf0180, ec=..., bytes_transferred=1) at /usr/include/boost/asio/detail/impl/epoll_reactor.ipp:704
        op = 0x7f66f00a1b50
        descriptor_data = 0x7f672caf0180
        events = 1
#10 0x0000563e60cf0789 in boost::asio::detail::task_io_service_operation::complete (this=0x7f672caf0180, owner=..., ec=..., bytes_transferred=1) at /usr/include/boost/asio/detail/task_io_service_operation.hpp:38
---Type <return> to continue, or q <return> to quit---
No locals.
#11 0x0000563e60cf1721 in boost::asio::detail::task_io_service::do_run_one (this=0x563e62e52900, lock=..., this_thread=..., ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:372
        task_result = 1
        on_exit = {task_io_service_ = 0x563e62e52900, lock_ = 0x7f673d962d50, this_thread_ = 0x7f673d962d80}
        o = 0x7f672caf0180
        more_handlers = true
#12 0x0000563e60cf13fb in boost::asio::detail::task_io_service::run (this=0x563e62e52900, ec=...) at /usr/include/boost/asio/detail/impl/task_io_service.ipp:149
        this_thread = {<boost::asio::detail::thread_info_base> = {<boost::asio::detail::noncopyable> = {<No data fields>}, reusable_memory_ = 0x7f672dab7110}, private_op_queue = {<boost::asio::detail::noncopyable> = {<No data fields>},
            front_ = 0x0, back_ = 0x0}, private_outstanding_work = 0}
        ctx = {<boost::asio::detail::noncopyable> = {<No data fields>}, key_ = 0x563e62e52900, value_ = 0x7f673d962d80, next_ = 0x0}
        lock = {<boost::asio::detail::noncopyable> = {<No data fields>}, mutex_ = @0x563e62e52930, locked_ = false}
        n = 44945537
#13 0x0000563e60cf1883 in boost::asio::io_service::run (this=0x7fff28bb5ca8) at /usr/include/boost/asio/impl/io_service.ipp:59
        ec = {m_val = 0, m_cat = 0x7f6744004100}
        s = 0
#14 0x0000563e60cfd167 in boost::_mfi::mf0<unsigned long, boost::asio::io_service>::operator() (this=0x563e62e53248, p=0x7fff28bb5ca8) at /usr/include/boost/bind/mem_fn_template.hpp:49
No locals.
#15 0x0000563e60cfd0cc in boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> >::operator()<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list0> (this=0x563e62e53258, f=..., a=...)
    at /usr/include/boost/bind/bind.hpp:249
No locals.
#16 0x0000563e60cfd05c in boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > >::operator() (this=0x563e62e53248)
    at /usr/include/boost/bind/bind.hpp:1294
        a = {<No data fields>}
#17 0x0000563e60cfcf7e in boost::detail::thread_data<boost::_bi::bind_t<unsigned long, boost::_mfi::mf0<unsigned long, boost::asio::io_service>, boost::_bi::list1<boost::_bi::value<boost::asio::io_service*> > > >::run (
    this=0x563e62e53090) at /usr/include/boost/thread/detail/thread.hpp:116
No locals.
#18 0x00007f67438e4bcd in ?? () from /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.65.1
No symbol table info available.
#19 0x00007f67436bb6db in start_thread (arg=0x7f673d963700) at pthread_create.c:463
        pd = 0x7f673d963700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140081391613696, 8226701326283884221, 140081391611840, 0, 94825947148432, 140733876754896, -8294110538978113859, -8294052080400283971}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0,
              0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
#20 0x00007f674246361f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.
 
My guess is that there is a service in m_services (because there is a check for it in handle), but that the service itself is destroyed. Actually, from the code it looks like services are never removed from m_services. Not really sure how it is supposed to work, all I know is that shutting down an asio application gracefully and "correct" is not trivial.
 
My guess is that there is a service in m_services (because there is a check for it in handle), but that the service itself is destroyed. Actually, from the code it looks like services are never removed from m_services. Not really sure how it is supposed to work, all I know is that shutting down an asio application gracefully and "correct" is not trivial.
Is this dangerous in any way? Harmful to the application? As I understand it, my connection handler is old (there are better ways already), can you help me to improve it?
 
It's well know bug in most of old TFSes. There is some service that does not know it's running, so it does not close itself. Shutdown did not work at all, because of that. Someone did not debug what is wrong and added exit in code of Game::shutdown. That's why it reports crash.

I'm not sure, but it was probably in server.h:
Code:
void ServiceManager::run()
{
   assert(!running);
   try
   {
      m_io_service.run();
      running = true;
   }
Replace it with:
Code:
void ServiceManager::run()
{
   assert(!running);
   try
   {
      running = true;
      m_io_service.run();
   }
m_io_service.run(); is blocking operation and it never executes running = true;, so ::close function does not work.

After that change edit game.cpp, find:
Code:
void Game::shutdown()
there is probably:
Code:
exit(-1);
Remove it.

After these changes make sure, that server shutdown with talkaction/globalevent.
 
It's well know bug in most of old TFSes. There is some service that does not know it's running, so it does not close itself. Shutdown did not work at all, because of that. Someone did not debug what is wrong and added exit in code of Game::shutdown. That's why it reports crash.

I'm not sure, but it was probably in server.h:
Code:
void ServiceManager::run()
{
   assert(!running);
   try
   {
      m_io_service.run();
      running = true;
   }
Replace it with:
Code:
void ServiceManager::run()
{
   assert(!running);
   try
   {
      running = true;
      m_io_service.run();
   }
m_io_service.run(); is blocking operation and it never executes running = true;, so ::close function does not work.

After that change edit game.cpp, find:
Code:
void Game::shutdown()
there is probably:
Code:
exit(-1);
Remove it.

After these changes make sure, that server shutdown with talkaction/globalevent.
Found this at server.cpp

Lua:
void ServiceManager::run()
{
    assert(!running);
    try
    {
        std::vector<boost::shared_ptr<boost::thread> > threads;
        for(uint32_t i = 0; i < g_config.getNumber(ConfigManager::SERVICE_THREADS); ++i)
        {
            boost::shared_ptr<boost::thread> thread(new boost::thread(
                boost::bind(&boost::asio::io_service::run, &m_io_service)));
            threads.push_back(thread);
        }

        running = true;
        for(std::vector<boost::shared_ptr<boost::thread> >::const_iterator it = threads.begin(); it != threads.end(); ++it)
            (*it)->join();
    }
    catch(std::exception& e)
    {
        LOG_MESSAGE(LOGTYPE_ERROR, e.what(), "NETWORK")
    }
}

What i need to replace?


Found
C++:
void Game::shutdown()
at game.cpp

C++:
void Game::shutdown()
{
    std::clog << "Preparing";
    Scheduler::getInstance().shutdown();
    std::clog << " to";
    Dispatcher::getInstance().shutdown();
    std::clog << " shutdown";
    Spawns::getInstance()->clear();
    std::clog << " the";
    Raids::getInstance()->clear();
    std::clog << " server... ";
    cleanup();
    std::clog << "(done)." << std::endl;
    if(services)
        services->stop();

#if defined(WINDOWS) && !defined(_CONSOLE)
    std::exit(-1);
#endif
}
 
Last edited:
You got different version. Version with death-timer:
C++:
void ServiceManager::stop()
{
    if(!running)
        return;

    running = false;
    for(AcceptorsMap::iterator it = m_acceptors.begin(); it != m_acceptors.end(); ++it)
    {
        try
        {
            m_io_service.post(boost::bind(&ServicePort::close, it->second));
        }
        catch(std::exception& e)
        {
            LOG_MESSAGE(LOGTYPE_ERROR, e.what(), "NETWORK")
        }
    }

    m_acceptors.clear();
    OutputMessagePool::getInstance()->stop();

    deathTimer.expires_from_now(boost::posix_time::seconds(3));
    deathTimer.async_wait(boost::bind(&ServiceManager::die, this));
}
So it tries to close ports and kills process after 3 seconds (no matter, if it closed all connections or not).
I don't know how to fix it.
 
? is nostalrius 1.2
OTX 2
Post automatically merged:

You got different version. Version with death-timer:
C++:
void ServiceManager::stop()
{
    if(!running)
        return;

    running = false;
    for(AcceptorsMap::iterator it = m_acceptors.begin(); it != m_acceptors.end(); ++it)
    {
        try
        {
            m_io_service.post(boost::bind(&ServicePort::close, it->second));
        }
        catch(std::exception& e)
        {
            LOG_MESSAGE(LOGTYPE_ERROR, e.what(), "NETWORK")
        }
    }

    m_acceptors.clear();
    OutputMessagePool::getInstance()->stop();

    deathTimer.expires_from_now(boost::posix_time::seconds(3));
    deathTimer.async_wait(boost::bind(&ServiceManager::die, this));
}
So it tries to close ports and kills process after 3 seconds (no matter, if it closed all connections or not).
I don't know how to fix it.
May i remove
C++:
#if defined(WINDOWS) && !defined(_CONSOLE)
    std::exit(-1);
#endif
from game.cpp @Gesior.pl ?
 
Last edited:
OTX 2
Post automatically merged:


May i remove
C++:
#if defined(WINDOWS) && !defined(_CONSOLE)
    std::exit(-1);
#endif
from game.cpp @Gesior.pl ?
This exit code is probably not executed at all. Do you host on Windows using GUI? I don't think so.
Thing that kills your server is 'death timer'.
 
Back
Top