xlgjjff / libtorrent

Automatically exported from code.google.com/p/libtorrent
Other
0 stars 0 forks source link

recursive loop: libtorrent::peer_connection::setup_send -> libtorrent::peer_connection::request_upload_bandwidth #421

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Using deluge, it segfaults routinely.

What is the expected output? What do you see instead?

gdb backtrace

[the last two stackframes keep repeating...]

#40295 0x00007ffff4734668 in 
libtorrent::peer_connection::request_upload_bandwidth(libtorrent::bandwidth_chan
nel*, libtorrent::bandwidth_channel*, libtorrent::bandwidth_channel*, 
libtorrent::bandwidth_channel*) ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40296 0x00007ffff473479a in libtorrent::peer_connection::setup_send() ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40297 0x00007ffff4734668 in 
libtorrent::peer_connection::request_upload_bandwidth(libtorrent::bandwidth_chan
nel*, libtorrent::bandwidth_channel*, libtorrent::bandwidth_channel*, 
libtorrent::bandwidth_channel*) ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40298 0x00007ffff473479a in libtorrent::peer_connection::setup_send() ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40299 0x00007ffff4734668 in 
libtorrent::peer_connection::request_upload_bandwidth(libtorrent::bandwidth_chan
nel*, libtorrent::bandwidth_channel*, libtorrent::bandwidth_channel*, 
libtorrent::bandwidth_channel*) ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40300 0x00007ffff473479a in libtorrent::peer_connection::setup_send() ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40301 0x00007ffff4734668 in 
libtorrent::peer_connection::request_upload_bandwidth(libtorrent::bandwidth_chan
nel*, libtorrent::bandwidth_channel*, libtorrent::bandwidth_channel*, 
libtorrent::bandwidth_channel*) ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40302 0x00007ffff473479a in libtorrent::peer_connection::setup_send() ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40303 0x00007ffff4734668 in 
libtorrent::peer_connection::request_upload_bandwidth(libtorrent::bandwidth_chan
nel*, libtorrent::bandwidth_channel*, libtorrent::bandwidth_channel*, 
libtorrent::bandwidth_channel*) ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40304 0x00007ffff473479a in libtorrent::peer_connection::setup_send() ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40305 0x00007ffff472c26e in 
libtorrent::peer_connection::on_send_data(boost::system::error_code const&, 
unsigned long) ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40306 0x00007ffff473e4b4 in 
boost::asio::detail::reactive_socket_send_op<std::list<boost::asio::const_buffer
, std::allocator<boost::asio::const_buffer> >, 
libtorrent::peer_connection::allocating_handler<boost::_bi::bind_t<void, 
boost::_mfi::mf2<void, libtorrent::peer_connection, boost::system::error_code 
const&, unsigned long>, 
boost::_bi::list3<boost::_bi::value<boost::intrusive_ptr<libtorrent::peer_connec
tion> >, boost::arg<1>, boost::arg<2> > >, 256ul> 
>::do_complete(boost::asio::detail::task_io_service*, 
boost::asio::detail::task_io_service_operation*, boost::system::error_code, 
unsigned long) ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40307 0x00007ffff46e3572 in 
boost::asio::detail::task_io_service::run(boost::system::error_code&) () from 
/usr/lib/libtorrent-rasterbar.so.6
#40308 0x00007ffff475ba11 in libtorrent::aux::session_impl::operator()() ()
   from /usr/lib/libtorrent-rasterbar.so.6
#40309 0x00007ffff3a5ace9 in thread_proxy ()
   from /usr/lib/libboost_thread.so.1.46.1
#40310 0x00007ffff7bc4e9a in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
#40311 0x00007ffff69b3cbd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#40312 0x0000000000000000 in ?? ()

What version of the product are you using? On what operating system?
deluge: 1.3.5
libtorrent: 0.15.10.0
Ubuntu 12.04.2 LTS 

Please provide any additional information below.

Original issue reported on code.google.com by foozleva...@gmail.com on 19 Feb 2013 at 1:59

GoogleCodeExporter commented 8 years ago
I don't understand the condition in which this can happen, I have an idea of 
how to make it more robust though. I'll have a patch tonight.

Original comment by ar...@bittorrent.com on 19 Feb 2013 at 8:14

GoogleCodeExporter commented 8 years ago
this patch may fix it, and most likely at least mitigate it.

Original comment by arvid.no...@gmail.com on 20 Feb 2013 at 5:11

Attachments:

GoogleCodeExporter commented 8 years ago
this is checked in to RC_0_15.

Original comment by arvid.no...@gmail.com on 7 Mar 2013 at 7:42