xlgjjff / libtorrent

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

Assert fail in bt_peer_connection::~bt_peer_connection() #328

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
I hit the following assertion when deleting a torrent:
version: 0.16.0.0
$Rev: 4683 $
file: 'bt_peer_connection.cpp'
line: 200
function: virtual libtorrent::bt_peer_connection::~bt_peer_connection()
expression: m_ses.is_network_thread()

stack:
1: assert_fail(char const*, int, char const*, char const*, char const*)
2: libtorrent::bt_peer_connection::~bt_peer_connection()
3: boost::detail::function::functor_manager<boost::_bi::bind_t<void, 
boost::_mfi::mf4<void, libtorrent::peer_connection, int, 
libtorrent::disk_io_job const&, libtorrent::peer_request, 
boost::shared_ptr<libtorrent::torrent> >, 
boost::_bi::list5<boost::_bi::value<boost::intrusive_ptr<libtorrent::peer_connec
tion> >, boost::arg<1>, boost::arg<2>, 
boost::_bi::value<libtorrent::peer_request>, 
boost::_bi::value<boost::shared_ptr<libtorrent::torrent> > > > 
>::manager(boost::detail::function::function_buffer const&, 
boost::detail::function::function_buffer&, 
boost::detail::function::functor_manager_operation_type, mpl_::bool_<false>)
4: boost::detail::function::functor_manager<boost::_bi::bind_t<void, 
boost::_mfi::mf4<void, libtorrent::peer_connection, int, 
libtorrent::disk_io_job const&, libtorrent::peer_request, 
boost::shared_ptr<libtorrent::torrent> >, 
boost::_bi::list5<boost::_bi::value<boost::intrusive_ptr<libtorrent::peer_connec
tion> >, boost::arg<1>, boost::arg<2>, 
boost::_bi::value<libtorrent::peer_request>, 
boost::_bi::value<boost::shared_ptr<libtorrent::torrent> > > > 
>::manage(boost::detail::function::function_buffer const&, 
boost::detail::function::function_buffer&, 
boost::detail::function::functor_manager_operation_type)
5: 
boost::detail::sp_counted_impl_pd<libtorrent::disk_io_thread::cached_block_entry
*, boost::checked_array_deleter<libtorrent::disk_io_thread::cached_block_entry> 
>::dispose()
6: libtorrent::disk_io_thread::cached_piece_entry::~cached_piece_entry()
7: 
boost::multi_index::detail::ordered_index<boost::multi_index::const_mem_fun<libt
orrent::disk_io_thread::cached_piece_entry, std::pair<void*, int>, 
&(libtorrent::disk_io_thread::cached_piece_entry::storage_piece_pair() const)>, 
std::less<std::pair<void*, int> >, boost::multi_index::detail::nth_layer<1, 
libtorrent::disk_io_thread::cached_piece_entry, 
boost::multi_index::indexed_by<boost::multi_index::ordered_unique<boost::multi_i
ndex::const_mem_fun<libtorrent::disk_io_thread::cached_piece_entry, 
std::pair<void*, int>, 
&(libtorrent::disk_io_thread::cached_piece_entry::storage_piece_pair() const)>, 
mpl_::na, mpl_::na>, 
boost::multi_index::ordered_non_unique<boost::multi_index::member<libtorrent::di
sk_io_thread::cached_piece_entry, libtorrent::ptime, 
&(libtorrent::disk_io_thread::cached_piece_entry::expire)>, mpl_::na, 
mpl_::na>, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, 
mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, 
mpl_::na, mpl_::na, mpl_::na, mpl_::na>, 
std::allocator<libtorrent::disk_io_thread::cached_piece_entry> >, 
boost::mpl::vector0<mpl_::na>, 
boost::multi_index::detail::ordered_unique_tag>::erase(boost::multi_index::detai
l::bidir_node_iterator<boost::multi_index::detail::ordered_index_node<boost::mul
ti_index::detail::ordered_index_node<boost::multi_index::detail::index_node_base
<libtorrent::disk_io_thread::cached_piece_entry, 
std::allocator<libtorrent::disk_io_thread::cached_piece_entry> > > > >)
8: libtorrent::disk_io_thread::thread_fun()
9: boost_asio_detail_posix_thread_function
10: _pthread_start
11: thread_start

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

What version of the product are you using? On what operating system?
Latest v0.16.0+svn on Mac OS X Lion

Please provide any additional information below.

Original issue reported on code.google.com by dch...@gmail.com on 20 May 2012 at 11:40

GoogleCodeExporter commented 8 years ago
gdb backtrace: http://pastebin.ca/2151035

Original comment by dch...@gmail.com on 20 May 2012 at 11:42

GoogleCodeExporter commented 8 years ago
Full gdb backtrace

Original comment by dch...@gmail.com on 20 May 2012 at 11:47

Attachments:

GoogleCodeExporter commented 8 years ago
Just in case, it happened with this torrent:
http://dl.xonotic.org/xonotic-0.6.0.zip.torrent

Original comment by dch...@gmail.com on 20 May 2012 at 11:48