arvidn / libtorrent

an efficient feature complete C++ bittorrent implementation
http://libtorrent.org
Other
5.26k stars 996 forks source link

crash in peer allocator #7386

Open Lwxiang opened 1 year ago

Lwxiang commented 1 year ago

Please provide the following information

libtorrent version (or branch): 1.2.18

platform/architecture: centos7/x86_64

compiler and compiler version: gcc7.3.1

observed a crash in peer allocator when handling new connections

Program terminated with signal 11, Segmentation fault.
#0  0x0000000000b42ab8 in boost::simple_segregated_storage<unsigned long>::malloc() ()
Missing separate debuginfos, use: debuginfo-install glibc-2.17-323.tl2.x86_64 libgcc-4.8.5-39.tl2.1.x86_64 libstdc++-4.8.5-39.tl2.1.x86_64
(gdb) bt
#0  0x0000000000b42ab8 in boost::simple_segregated_storage<unsigned long>::malloc() ()
#1  0x0000000000b429fd in boost::pool<libtorrent::aux::allocator_new_delete>::malloc() ()
#2  0x0000000000b4254a in libtorrent::torrent_peer_allocator::allocate_peer_entry(int) ()
#3  0x0000000000d63ee9 in libtorrent::peer_list::new_connection(libtorrent::peer_connection_interface&, int, libtorrent::torrent_state*) ()
#4  0x0000000000a9309f in libtorrent::torrent::attach_peer(libtorrent::peer_connection*) ()
#5  0x0000000000d19aba in libtorrent::peer_connection::attach_to_torrent(libtorrent::digest32<160l> const&) ()
#6  0x0000000000c53c1c in libtorrent::bt_peer_connection::on_receive_impl(unsigned long) ()
#7  0x0000000000c51766 in libtorrent::bt_peer_connection::on_receive(boost::system::error_code const&, unsigned long) ()
#8  0x0000000000d2c5d1 in libtorrent::peer_connection::on_receive_data(boost::system::error_code const&, unsigned long) ()
#9  0x0000000000d57504 in void std::__invoke_impl<void, void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&>(std::__invoke_memfun_deref, void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&) ()
#10 0x0000000000d53df1 in std::__invoke_result<void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&>::type std::__invoke<void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&>(void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&) ()
#11 0x0000000000d5185c in void std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>::__call_c<void, boost::system::error_code const&, unsigned long const&, 0ul, 1ul, 2ul>(std::tuple<boost::system::error_code const&, unsigned long const&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) const ()
#12 0x0000000000d4eaa4 in void std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>::operator()<boost::system::error_code const&, unsigned long const&, void>(boost::system::error_code const&, unsigned long const&) const ()
#13 0x0000000000d4bf6a in void libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>::operator()<boost::system::error_code const&, unsigned long const&>(boost::system::error_code const&, unsigned long const&) const ()
#14 0x0000000000d51431 in boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>::operator()() ()
#15 0x0000000000d4e3ac in void boost::asio::asio_handler_invoke<boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>&, ...) ()
#16 0x0000000000d4b8d1 in void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>, libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul> >(boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>&, libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>&) ()
#17 0x0000000000d4a687 in boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) ()
#18 0x000000000096398c in boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&, boost::system::error_code const&, unsigned long) ()
#19 0x00000000009cf9b1 in boost::asio::detail::epoll_reactor::descriptor_state::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) ()
#20 0x000000000096398c in boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&, boost::system::error_code const&, unsigned long) ()
#21 0x00000000009648c0 in boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>&, boost::asio::detail::task_io_service_thread_info&, boost::system::error_code const&) ()
#22 0x0000000000964586 in boost::asio::detail::task_io_service::run(boost::system::error_code&) ()
#23 0x0000000000964b4b in boost::asio::io_service::run() ()
#24 0x0000000000961b60 in libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}::operator()() const ()
#25 0x00000000009631d3 in void std::__invoke_impl<void, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::__invoke_other, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) ()
#26 0x0000000000962f5f in std::__invoke_result<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>::type std::__invoke<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::__invoke_result&&, (libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&)...) ()
#27 0x00000000009635b6 in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) ()
#28 0x0000000000963587 in std::thread::_Invoker<std::tuple<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}> >::operator()() ()
#29 0x0000000000963566 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}> > >::_M_run() ()
#30 0x0000000000fa64df in execute_native_thread_routine ()
#31 0x00007f490ee4dea5 in start_thread () from /lib64/libpthread.so.0
#32 0x00007f490e6709fd in clone () from /lib64/libc.so.6
arvidn commented 1 year ago

this looks like heap corruption. Can you reproduce it with address sanitizer?

Lwxiang commented 1 year ago

It seems like tcmalloc will have some conflicts with boost::pool::malloc.

After I remove the tcmalloc from project, the crash does not reappear.

arvidn commented 1 year ago

that's another indication of general memory corruption. try running with address sanitizer

Lwxiang commented 1 year ago

here is the stdout of the crash app, which I produce with address sanitizer.

ASAN:DEADLYSIGNAL
=================================================================
==10241==ERROR: AddressSanitizer: SEGV on unknown address 0x18a88000e3ab (pc 0x000000f5bdc2 bp 0x7f8d1c15ba10 sp 0x7f8d1c15b9f0 T25)
==10241==The signal is caused by a READ memory access.
    #0 0xf5bdc1 in boost::simple_segregated_storage<unsigned long>::malloc() (/data/myapp+0xf5bdc1)
    #1 0xf5bc62 in boost::pool<libtorrent::aux::allocator_new_delete>::malloc() (/data/myapp+0xf5bc62)
    #2 0xf5b08d in libtorrent::torrent_peer_allocator::allocate_peer_entry(int) (/data/myapp+0xf5b08d)
    #3 0x1484a23 in libtorrent::peer_list::new_connection(libtorrent::peer_connection_interface&, int, libtorrent::torrent_state*) (/data/myapp+0x1484a23)
    #4 0xdb5cba in libtorrent::torrent::attach_peer(libtorrent::peer_connection*) (/data/myapp+0xdb5cba)
    #5 0x13c6c57 in libtorrent::peer_connection::attach_to_torrent(libtorrent::digest32<160l> const&) (/data/myapp+0x13c6c57)
    #6 0x11ef79a in libtorrent::bt_peer_connection::on_receive_impl(unsigned long) (/data/myapp+0x11ef79a)
    #7 0x11e9fd0 in libtorrent::bt_peer_connection::on_receive(boost::system::error_code const&, unsigned long) (/data/myapp+0x11e9fd0)
    #8 0x13faf0c in libtorrent::peer_connection::on_receive_data(boost::system::error_code const&, unsigned long) (/data/myapp+0x13faf0c)
    #9 0x1461c4a in void std::__invoke_impl<void, void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&>(std::__invoke_memfun_deref, void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&) (/data/myapp+0x1461c4a)
    #10 0x1459d65 in std::__invoke_result<void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&>::type std::__invoke<void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&>(void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&) (/data/myapp+0x1459d65)
    #11 0x14551e3 in void std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>::__call_c<void, boost::system::error_code const&, unsigned long const&, 0ul, 1ul, 2ul>(std::tuple<boost::system::error_code const&, unsigned long const&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) const (/data/myapp+0x14551e3)
    #12 0x144d95d in void std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>::operator()<boost::system::error_code const&, unsigned long const&, void>(boost::system::error_code const&, unsigned long const&) const (/data/myapp+0x144d95d)
    #13 0x1447082 in void libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>::operator()<boost::system::error_code const&, unsigned long const&>(boost::system::error_code const&, unsigned long const&) const (/data/myapp+0x1447082)
    #14 0x14549a8 in boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>::operator()() (/data/myapp+0x14549a8)
    #15 0x144c64e in void boost::asio::asio_handler_invoke<boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>&, ...) (/data/myapp+0x144c64e)
    #16 0x1445f1e in void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>, libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul> >(boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>&, libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>&) (/data/myapp+0x1445f1e)
    #17 0x1442d51 in boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (/data/myapp+0x1442d51)
    #18 0xae3758 in boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&, boost::system::error_code const&, unsigned long) (/data/myapp+0xae3758)
    #19 0xae5e61 in boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>&, boost::asio::detail::task_io_service_thread_info&, boost::system::error_code const&) (/data/myapp+0xae5e61)
    #20 0xae557a in boost::asio::detail::task_io_service::run(boost::system::error_code&) (/data/myapp+0xae557a)
    #21 0xae636a in boost::asio::io_service::run() (/data/myapp+0xae636a)
    #22 0xadf669 in libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}::operator()() const (/data/myapp+0xadf669)
    #23 0xae24de in void std::__invoke_impl<void, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::__invoke_other, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xae24de)
    #24 0xae209b in std::__invoke_result<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>::type std::__invoke<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::__invoke_result&&, (libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&)...) (/data/myapp+0xae209b)
    #25 0xae2eab in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (/data/myapp+0xae2eab)
    #26 0xae2e31 in std::thread::_Invoker<std::tuple<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}> >::operator()() (/data/myapp+0xae2e31)
    #27 0xae2da1 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}> > >::_M_run() (/data/myapp+0xae2da1)
    #28 0x1730a5e in execute_native_thread_routine (/data/myapp+0x1730a5e)
    #29 0x7f8d2ccc8ea4 in start_thread (/lib64/libpthread.so.0+0x7ea4)
    #30 0x7f8d2c4ebb0c in clone (/lib64/libc.so.6+0xfeb0c)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/data/myapp+0xf5bdc1) in boost::simple_segregated_storage<unsigned long>::malloc()
Thread T25 created by T0 here:
    #0 0x7275bf in pthread_create (/data/myapp+0x7275bf)
    #1 0x1730af4 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/data/myapp+0x1730af4)
    #2 0xae1fdb in void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::thread*, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xae1fdb)
    #3 0xae1f8c in void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::allocator<std::thread>&, std::thread*, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xae1f8c)
    #4 0xae1ecc in std::_Sp_counted_ptr_inplace<std::thread, std::allocator<std::thread>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::allocator<std::thread>, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xae1ecc)
    #5 0xae1beb in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<std::thread, std::allocator<std::thread>, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::_Sp_make_shared_tag, std::thread*, std::allocator<std::thread> const&, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xae1beb)
    #6 0xae19a2 in std::__shared_ptr<std::thread, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<std::thread>, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::_Sp_make_shared_tag, std::allocator<std::thread> const&, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xae19a2)
    #7 0xae191c in std::shared_ptr<std::thread>::shared_ptr<std::allocator<std::thread>, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::_Sp_make_shared_tag, std::allocator<std::thread> const&, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xae191c)
    #8 0xae1885 in std::shared_ptr<std::thread> std::allocate_shared<std::thread, std::allocator<std::thread>, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::allocator<std::thread> const&, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xae1885)
    #9 0xae174b in std::shared_ptr<std::thread> std::make_shared<std::thread, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xae174b)
    #10 0xadff6c in libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*) (/data/myapp+0xadff6c)
    #11 0xae083e in libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::settings_pack&&, boost::asio::io_service*) (/data/myapp+0xae083e)
    #12 0x89e8e8 in libtorrent::session::session(libtorrent::settings_pack const&, libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>) /usr/local/include/libtorrent/session.hpp:239
    #13 0x89e8e8 in void __gnu_cxx::new_allocator<libtorrent::session>::construct<libtorrent::session, libtorrent::settings_pack&>(libtorrent::session*, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/ext/new_allocator.h:136
    #14 0x89e8e8 in void std::allocator_traits<std::allocator<libtorrent::session> >::construct<libtorrent::session, libtorrent::settings_pack&>(std::allocator<libtorrent::session>&, libtorrent::session*, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/alloc_traits.h:475
    #15 0x89e8e8 in std::_Sp_counted_ptr_inplace<libtorrent::session, std::allocator<libtorrent::session>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<libtorrent::settings_pack&>(std::allocator<libtorrent::session>, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr_base.h:526
    #16 0x89e8e8 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<libtorrent::session, std::allocator<libtorrent::session>, libtorrent::settings_pack&>(std::_Sp_make_shared_tag, libtorrent::session*, std::allocator<libtorrent::session> const&, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr_base.h:637
    #17 0x89e8e8 in std::__shared_ptr<libtorrent::session, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<libtorrent::session>, libtorrent::settings_pack&>(std::_Sp_make_shared_tag, std::allocator<libtorrent::session> const&, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr_base.h:1295
    #18 0x89e8e8 in std::shared_ptr<libtorrent::session>::shared_ptr<std::allocator<libtorrent::session>, libtorrent::settings_pack&>(std::_Sp_make_shared_tag, std::allocator<libtorrent::session> const&, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr.h:344
    #19 0x89e8e8 in std::shared_ptr<libtorrent::session> std::allocate_shared<libtorrent::session, std::allocator<libtorrent::session>, libtorrent::settings_pack&>(std::allocator<libtorrent::session> const&, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr.h:691
    #20 0x89e8e8 in std::shared_ptr<libtorrent::session> std::make_shared<libtorrent::session, libtorrent::settings_pack&>(libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr.h:707
    #21 0x89e8e8 in myapp::bittorrent::BitTorrent::StartSession() /data/myapp/module/bittorrent/bittorrent.cpp:301

==10241==ABORTING
Lwxiang commented 1 year ago

this is another crash, same position at boost::simple_segregated_storage<unsigned long>::malloc() but trigger by add_peer

ASAN:DEADLYSIGNAL
=================================================================
==13474==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x00000132fe0e bp 0x7f0885a5b220 sp 0x7f0885a5b200 T25)
==13474==The signal is caused by a READ memory access.
==13474==Hint: address points to the zero page.
    #0 0x132fe0d in boost::simple_segregated_storage<unsigned long>::malloc() (/data/myapp+0x132fe0d)
    #1 0x132fcae in boost::pool<libtorrent::aux::allocator_new_delete>::malloc() (/data/myapp+0x132fcae)
    #2 0x132f0d9 in libtorrent::torrent_peer_allocator::allocate_peer_entry(int) (/data/myapp+0x132f0d9)
    #3 0x185d4be in libtorrent::peer_list::add_peer(boost::asio::ip::basic_endpoint<boost::asio::ip::tcp> const&, libtorrent::flags::bitfield_flag<unsigned char, libtorrent::peer_source_flags_tag, void>, libtorrent::flags::bitfield_flag<unsigned char, libtorrent::pex_flags_tag, void>, libtorrent::torrent_state*) (/data/myapp+0x185d4be)
    #4 0x11a45df in libtorrent::torrent::add_peer(boost::asio::ip::basic_endpoint<boost::asio::ip::tcp> const&, libtorrent::flags::bitfield_flag<unsigned char, libtorrent::peer_source_flags_tag, void>, libtorrent::flags::bitfield_flag<unsigned char, libtorrent::pex_flags_tag, void>) (/data/myapp+0x11a45df)
    #5 0x143ff87 in libtorrent::(anonymous namespace)::ut_pex_peer_plugin::on_extended(int, int, libtorrent::span<char const>) (/data/myapp+0x143ff87)
    #6 0x15b422e in libtorrent::bt_peer_connection::on_extended(int) (/data/myapp+0x15b422e)
    #7 0x15b73d7 in libtorrent::bt_peer_connection::dispatch_message(int) (/data/myapp+0x15b73d7)
    #8 0x15c5690 in libtorrent::bt_peer_connection::on_receive_impl(unsigned long) (/data/myapp+0x15c5690)
    #9 0x15be01c in libtorrent::bt_peer_connection::on_receive(boost::system::error_code const&, unsigned long) (/data/myapp+0x15be01c)
    #10 0x17ce9e4 in libtorrent::peer_connection::on_receive_data(boost::system::error_code const&, unsigned long) (/data/myapp+0x17ce9e4)
    #11 0x1835722 in void std::__invoke_impl<void, void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&>(std::__invoke_memfun_deref, void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&) (/data/myapp+0x1835722)
    #12 0x182d83d in std::__invoke_result<void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&>::type std::__invoke<void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&>(void (libtorrent::peer_connection::* const&)(boost::system::error_code const&, unsigned long), std::shared_ptr<libtorrent::peer_connection> const&, boost::system::error_code const&, unsigned long const&) (/data/myapp+0x182d83d)
    #13 0x1828cbb in void std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>::__call_c<void, boost::system::error_code const&, unsigned long const&, 0ul, 1ul, 2ul>(std::tuple<boost::system::error_code const&, unsigned long const&>&&, std::_Index_tuple<0ul, 1ul, 2ul>) const (/data/myapp+0x1828cbb)
    #14 0x1821435 in void std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>::operator()<boost::system::error_code const&, unsigned long const&, void>(boost::system::error_code const&, unsigned long const&) const (/data/myapp+0x1821435)
    #15 0x181ab5a in void libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>::operator()<boost::system::error_code const&, unsigned long const&>(boost::system::error_code const&, unsigned long const&) const (/data/myapp+0x181ab5a)
    #16 0x1828480 in boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>::operator()() (/data/myapp+0x1828480)
    #17 0x1820126 in void boost::asio::asio_handler_invoke<boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long> >(boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>&, ...) (/data/myapp+0x1820126)
    #18 0x18199f6 in void boost_asio_handler_invoke_helpers::invoke<boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>, libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul> >(boost::asio::detail::binder2<libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>, boost::system::error_code, unsigned long>&, libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul>&) (/data/myapp+0x18199f6)
    #19 0x1816829 in boost::asio::detail::reactive_socket_recv_op<boost::asio::mutable_buffers_1, libtorrent::aux::allocating_handler<std::_Bind<void (libtorrent::peer_connection::*(std::shared_ptr<libtorrent::peer_connection>, std::_Placeholder<1>, std::_Placeholder<2>))(boost::system::error_code const&, unsigned long)>, 432ul> >::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (/data/myapp+0x1816829)
    #20 0xeb5808 in boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&, boost::system::error_code const&, unsigned long) (/data/myapp+0xeb5808)
    #21 0xfc0954 in boost::asio::detail::epoll_reactor::descriptor_state::do_complete(boost::asio::detail::task_io_service*, boost::asio::detail::task_io_service_operation*, boost::system::error_code const&, unsigned long) (/data/myapp+0xfc0954)
    #22 0xeb5808 in boost::asio::detail::task_io_service_operation::complete(boost::asio::detail::task_io_service&, boost::system::error_code const&, unsigned long) (/data/myapp+0xeb5808)
    #23 0xeb7f11 in boost::asio::detail::task_io_service::do_run_one(boost::asio::detail::scoped_lock<boost::asio::detail::posix_mutex>&, boost::asio::detail::task_io_service_thread_info&, boost::system::error_code const&) (/data/myapp+0xeb7f11)
    #24 0xeb762a in boost::asio::detail::task_io_service::run(boost::system::error_code&) (/data/myapp+0xeb762a)
    #25 0xeb841a in boost::asio::io_service::run() (/data/myapp+0xeb841a)
    #26 0xeb1719 in libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}::operator()() const (/data/myapp+0xeb1719)
    #27 0xeb458e in void std::__invoke_impl<void, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::__invoke_other, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xeb458e)
    #28 0xeb414b in std::__invoke_result<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>::type std::__invoke<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::__invoke_result&&, (libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&)...) (/data/myapp+0xeb414b)
    #29 0xeb4f5b in decltype (__invoke((_S_declval<0ul>)())) std::thread::_Invoker<std::tuple<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}> >::_M_invoke<0ul>(std::_Index_tuple<0ul>) (/data/myapp+0xeb4f5b)
    #30 0xeb4ee1 in std::thread::_Invoker<std::tuple<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}> >::operator()() (/data/myapp+0xeb4ee1)
    #31 0xeb4e51 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}> > >::_M_run() (/data/myapp+0xeb4e51)
    #32 0x1b0455e in execute_native_thread_routine (/data/myapp+0x1b0455e)
    #33 0x7f08965edea4 in start_thread (/lib64/libpthread.so.0+0x7ea4)
    #34 0x7f0895e10b0c in clone (/lib64/libc.so.6+0xfeb0c)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV (/data/myapp+0x132fe0d) in boost::simple_segregated_storage<unsigned long>::malloc()
Thread T25 created by T0 here:
    #0 0x7354cf in __interceptor_pthread_create (/data/myapp+0x7354cf)
    #1 0x1b045f4 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/data/myapp+0x1b045f4)
    #2 0xeb408b in void __gnu_cxx::new_allocator<std::thread>::construct<std::thread, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::thread*, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xeb408b)
    #3 0xeb403c in void std::allocator_traits<std::allocator<std::thread> >::construct<std::thread, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::allocator<std::thread>&, std::thread*, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xeb403c)
    #4 0xeb3f7c in std::_Sp_counted_ptr_inplace<std::thread, std::allocator<std::thread>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::allocator<std::thread>, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xeb3f7c)
    #5 0xeb3c9b in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<std::thread, std::allocator<std::thread>, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::_Sp_make_shared_tag, std::thread*, std::allocator<std::thread> const&, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xeb3c9b)
    #6 0xeb3a52 in std::__shared_ptr<std::thread, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<std::thread>, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::_Sp_make_shared_tag, std::allocator<std::thread> const&, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xeb3a52)
    #7 0xeb39cc in std::shared_ptr<std::thread>::shared_ptr<std::allocator<std::thread>, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::_Sp_make_shared_tag, std::allocator<std::thread> const&, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xeb39cc)
    #8 0xeb3935 in std::shared_ptr<std::thread> std::allocate_shared<std::thread, std::allocator<std::thread>, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(std::allocator<std::thread> const&, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xeb3935)
    #9 0xeb37fb in std::shared_ptr<std::thread> std::make_shared<std::thread, libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}>(libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*)::{lambda()#1}&&) (/data/myapp+0xeb37fb)
    #10 0xeb201c in libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::session_params&&, boost::asio::io_service*) (/data/myapp+0xeb201c)
    #11 0xeb28ee in libtorrent::session::start(libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>, libtorrent::settings_pack&&, boost::asio::io_service*) (/data/myapp+0xeb28ee)
    #12 0xac95ef in libtorrent::session::session(libtorrent::settings_pack const&, libtorrent::flags::bitfield_flag<unsigned char, libtorrent::session_flags_tag, void>) /usr/local/include/libtorrent/session.hpp:239
    #13 0xac95ef in void __gnu_cxx::new_allocator<libtorrent::session>::construct<libtorrent::session, libtorrent::settings_pack&>(libtorrent::session*, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/ext/new_allocator.h:136
    #14 0xac95ef in void std::allocator_traits<std::allocator<libtorrent::session> >::construct<libtorrent::session, libtorrent::settings_pack&>(std::allocator<libtorrent::session>&, libtorrent::session*, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/alloc_traits.h:475
    #15 0xac95ef in std::_Sp_counted_ptr_inplace<libtorrent::session, std::allocator<libtorrent::session>, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<libtorrent::settings_pack&>(std::allocator<libtorrent::session>, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr_base.h:526
    #16 0xac95ef in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<libtorrent::session, std::allocator<libtorrent::session>, libtorrent::settings_pack&>(std::_Sp_make_shared_tag, libtorrent::session*, std::allocator<libtorrent::session> const&, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr_base.h:637
    #17 0xac95ef in std::__shared_ptr<libtorrent::session, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<libtorrent::session>, libtorrent::settings_pack&>(std::_Sp_make_shared_tag, std::allocator<libtorrent::session> const&, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr_base.h:1295
    #18 0xac95ef in std::shared_ptr<libtorrent::session>::shared_ptr<std::allocator<libtorrent::session>, libtorrent::settings_pack&>(std::_Sp_make_shared_tag, std::allocator<libtorrent::session> const&, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr.h:344
    #19 0xac95ef in std::shared_ptr<libtorrent::session> std::allocate_shared<libtorrent::session, std::allocator<libtorrent::session>, libtorrent::settings_pack&>(std::allocator<libtorrent::session> const&, libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr.h:691
    #20 0xac95ef in std::shared_ptr<libtorrent::session> std::make_shared<libtorrent::session, libtorrent::settings_pack&>(libtorrent::settings_pack&) /opt/rh/devtoolset-7/root/usr/include/c++/7/bits/shared_ptr.h:707
    #21 0xac95ef in myapp::bittorrent::BitTorrent::StartSession() /data/myapp/module/bittorrent/bittorrent.cpp:301

==13474==ABORTING
stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.