qBittorrent v2.4.0 random crash

Bug #660995 reported by utilitytrack
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
qBittorrent
New
Undecided
Unassigned

Bug Description

Hello to qBittorrent team.

I noticed that the program (v2.4.0) has random crashes. Is hard to say under what conditions it occurs.
Sometimes it's happens through short time after run (1-2 minutes).
So, all of I have it's console output with backtrace:

user@lenovo-laptop:~$ qbittorrent &
[1] 27781
user@lenovo-laptop:~$ Peer ID: -qB2400-
HTTP user agent is qBittorrent v2.4.0
qbittorrent: malloc.c:3951: __libc_valloc: Assertion `!p || ((((mchunkptr)((char*)(p) - 2*(sizeof(size_t)))))->size & 0x2) || ar_ptr == (((((mchunkptr)((char*)(p) - 2*(sizeof(size_t)))))->size & 0x4) ? ((heap_info *)((unsigned long)(((mchunkptr)((char*)(p) - 2*(sizeof(size_t))))) & ~((2 * (512 * 1024))-1)))->ar_ptr : &main_arena)' failed.

*************************************************************
Catching SIGABRT, please report a bug at http://bug.qbittorrent.org
and provide the following backtrace:
stack trace:
  [0xb78a3400]
  [0xb78a3424]
  /lib/tls/i686/cmov/libc.so.6 : gsignal()+0x51 [0x41420651]
  /lib/tls/i686/cmov/libc.so.6 : abort()+0x182 [0x41423a82]
  /lib/tls/i686/cmov/libc.so.6() [0x41461794]
  /lib/tls/i686/cmov/libc.so.6 : __libc_valloc()+0xe4 [0x41465d44]
  /usr/lib/libtorrent-rasterbar.so.6 : libtorrent::page_aligned_allocator::malloc(unsigned int)+0x1d [0xb74b8b2d]
  /usr/lib/libtorrent-rasterbar.so.6 : boost::pool<libtorrent::page_aligned_allocator>::ordered_malloc_need_resize()+0x5a [0xb74e581a]
  /usr/lib/libtorrent-rasterbar.so.6 : libtorrent::disk_buffer_pool::allocate_buffer(char const*)+0xa6 [0xb74db0c6]
  /usr/lib/libtorrent-rasterbar.so.6 : libtorrent::aux::session_impl::allocate_disk_buffer(char const*)+0x29 [0xb759a359]
  /usr/lib/libtorrent-rasterbar.so.6 : libtorrent::peer_connection::allocate_disk_receive_buffer(int)+0x6a [0xb756460a]
  /usr/lib/libtorrent-rasterbar.so.6 : libtorrent::bt_peer_connection::on_piece(int)+0x57d [0xb74c646d]
  /usr/lib/libtorrent-rasterbar.so.6 : libtorrent::bt_peer_connection::dispatch_message(int)+0x158 [0xb74c84e8]
  /usr/lib/libtorrent-rasterbar.so.6 : libtorrent::bt_peer_connection::on_receive(boost::system::error_code const&, unsigned int)+0x278 [0xb74c8fc8]
  /usr/lib/libtorrent-rasterbar.so.6 : libtorrent::peer_connection::on_receive_data_nolock(boost::system::error_code const&, unsigned int)+0xd1 [0xb7573751]
  /usr/lib/libtorrent-rasterbar.so.6 : libtorrent::peer_connection::on_receive_data(boost::system::error_code const&, unsigned int)+0x4c [0xb7574ddc]
  /usr/lib/libtorrent-rasterbar.so.6 : boost::asio::detail::handler_queue::handler_wrapper<boost::asio::detail::binder2<libtorrent::peer_connection::allocating_handler<boost::_bi::bind_t<void, boost::_mfi::mf2<void, libtorrent::peer_connection, boost::system::error_code const&, unsigned int>, boost::_bi::list3<boost::_bi::value<boost::intrusive_ptr<libtorrent::peer_connection> >, boost::arg<1>, boost::arg<2> > >, 256u>, boost::system::error_code, unsigned int> >::do_call(boost::asio::detail::handler_queue::handler*)+0xc8 [0xb7579ef8]
  /usr/lib/libtorrent-rasterbar.so.6 : boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor<false> >::run(boost::system::error_code&)+0x301 [0xb7521161]
  /usr/lib/libtorrent-rasterbar.so.6 : libtorrent::aux::session_impl::operator()()+0x5c [0xb75af96c]
  /usr/lib/libtorrent-rasterbar.so.6 : boost::detail::thread_data<boost::reference_wrapper<libtorrent::aux::session_impl> >::run()+0x23 [0xb75be353]
  /usr/lib/libboost_thread.so.1.42.0 : thread_proxy()+0x65 [0xb76ff0f5]
  /lib/tls/i686/cmov/libpthread.so.0() [0x41d4996e]
  /lib/tls/i686/cmov/libc.so.6 : clone()+0x5e [0x414c3a4e]

[1]+ Aborted qbittorrent
user@lenovo-laptop:~$

***

My environment:
OS: Ubuntu 10.04 LTS

$ uname -a
Linux lenovo-laptop 2.6.35.4-custom #1 SMP PREEMPT Mon Sep 6 03:36:21 GMT 2010 i686 GNU/Linux

Relevant packages:

$ dpkg-query --show qbittorrent libboost-filesystem1.42.0 libboost-system1.42.0 libboost-thread1.42.0 libc6 libgcc1 libqt4-dbus libqt4-network libqt4-xml libqtcore4 libqtgui4 libssl0.9.8 libstdc++6 libtorrent-rasterbar6 python | column -t

libboost-filesystem1.42.0 1.42.0-3ubuntu1
libboost-system1.42.0 1.42.0-3ubuntu1
libboost-thread1.42.0 1.42.0-3ubuntu1
libc6 2.11.1-0ubuntu7.2
libgcc1 1:4.4.3-4ubuntu5
libqt4-dbus 4:4.7.0-0ubuntu1
libqt4-network 4:4.7.0-0ubuntu1
libqt4-xml 4:4.7.0-0ubuntu1
libqtcore4 4:4.7.0-0ubuntu1
libqtgui4 4:4.7.0-0ubuntu1
libssl0.9.8 0.9.8o-2
libstdc++6 4.4.3-4ubuntu5
libtorrent-rasterbar6 0.15.3-0ubuntu1
python 2.6.5-0ubuntu1
qbittorrent 2.4.0-0ubuntu1

$ echo $LANG && echo $LANGUAGE
en_US.utf8
en_US:en

Please see other backtrace in attachments and also please tell if you need some other info. Thanks.

Revision history for this message
utilitytrack (utilitytrack) wrote :
description: updated
Revision history for this message
utilitytrack (utilitytrack) wrote :
Revision history for this message
Christophe Dumez (hydr0g3n) wrote :

The question is how did you get libtorrent v0.15 on Ubuntu 10.04 LTS? Did you compile it yourself or did you backport it from Maverick? We only provide v0.14 on Ubuntu 10.04 because of this eglibc bug.. :)

There is a bug in glibc/eglibc which causes this crash in malloc. The issue has been fixed in recent glibc/eglibc so Ubuntu Maverick (10.10) has the fix.

If I remember correctly, eglibc has also been patched on Ubuntu 10.04 but you need to enable the ubuntu-proposed repository to get the fix: https://wiki.ubuntu.com/Testing/EnableProposed

Either enable the ubuntu proposed repository, switch to maverick or use libtorrent v0.14.x instead. It is up to you.
In any case, this is not a qbittorrent bug.

Revision history for this message
utilitytrack (utilitytrack) wrote :

Yes, you are right, I used libtorrent-rasterbar6 from Maverick. But this doesn't matter... Anyway, it's good that bugs as you say already fixed. I will try use 0.14.x version instead. Thanks for your answer.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.