Opened 15 years ago

Closed 15 years ago

Last modified 11 years ago

#1220 closed defect (WontFix)

Deluge 1.2.3 doesn't work with libtorrent 0.15

Reported by: simonbcn Owned by:
Priority: major Milestone:
Component: Core Version: 1.2.3
Keywords: Cc:

Description

Deluge 1.2.3 & libtorrent 0.15 compiled from sources
deluged + deluge-gtk remote

It starts well but, after a while, it closes the daemon itself. No error in log!

I hope that you will test well the version 1.3.0 with this libtorrent version to avoid this severe error.

Change History (16)

comment:1 by Ghent, 15 years ago

Resolution: invalid
Status: newclosed

I've run those versions together just fine. Please don't open tickets that say something "doesn't work". Provide some debug output or some specific (substantiated) problem so that it can be fixed.

comment:2 by simonbcn, 15 years ago

Perhaps the problem is the very poor information that deluge dumps in log!?
With "deluged -L warning" it shows nothing!

Now I testing it with "deluged -L debug", but in this mode it shows the torrents name and this is private information.

comment:3 by Damien Churchill, 15 years ago

Star out the torrent names?

However you look at it this is a bad bug report. You didn't even test 1.3, which does work by the way as I am currently using 0.15 with it.

in reply to:  3 comment:4 by simonbcn, 15 years ago

Resolution: invalid
Status: closedreopened

Replying to damoxc:

Star out the torrent names?

Je je, thanks for the obvious comment, but I have many torrents!! I think that debug mode it should hide this info or it has an option to hide this info.

Replying to damoxc:

However you look at it this is a bad bug report. You didn't even test 1.3, which does work by the way as I am currently using 0.15 with it.

I have tested the v1.3 and I have returned to 1.2.3. See this: ticket 1204

By other hand, I have two tests now with "deluged -L debug" and it crashed the two times but it shows nothing suspect in the log. The last lines in log:

[DEBUG   ] 19:12:12 torrentmanager:911 on_alert_state_changed
[DEBUG   ] 19:12:12 torrent:336 set_state_based_on_ltstate: Downloading
[DEBUG   ] 19:12:12 torrent:337 session.is_paused: False
[DEBUG   ] 19:12:12 rpcserver:409 intevents: {0: ['NewVersionAvailableEvent', 'PluginEnabledEvent', 'TorrentResumedEvent', 'TorrentAddedEvent', 'TorrentRemovedEvent', 'PluginDisabledEvent', 'SessionResumedEvent', 'TorrentQueueChangedEvent', 'TorrentFileRenamedEvent', 'TorrentFolderRenamedEvent', 'TorrentStateChangedEvent', 'TorrentFinishedEvent', 'ConfigValueChangedEvent', 'SessionPausedEvent']}
[DEBUG   ] 19:12:12 rpcserver:413 Emit Event: TorrentStateChangedEvent ['1ddcc5a120adaf0d650385b30acd16b3df84d622', 'Downloading']
[DEBUG   ] 19:12:12 torrentmanager:832 on_alert_torrent_checked
[DEBUG   ] 19:12:12 torrent:336 set_state_based_on_ltstate: Downloading
[DEBUG   ] 19:12:12 torrent:337 session.is_paused: False
[DEBUG   ] 19:12:12 torrentmanager:859 on_alert_tracker_announce
[DEBUG   ] 19:12:12 alertmanager:115 tracker_reply_alert: xxxx (http://tracker.xxxxx/announce) received peers: 50
[DEBUG   ] 19:12:12 torrentmanager:842 on_alert_tracker_reply: xxxx (http://tracker.xxxxx/announce) received peers: 50
[DEBUG   ] 19:12:14 alertmanager:115 hash_failed_alert: xxxxx.avi hash for piece 22087 failed
[DEBUG   ] 19:12:15 alertmanager:115 hash_failed_alert: xxxxx.avi hash for piece 27671 failed
[DEBUG   ] 19:12:15 alertmanager:115 hash_failed_alert: xxxxx.avi hash for piece 16093 failed
[DEBUG   ] 19:12:15 alertmanager:115 hash_failed_alert: xxxxx.avi hash for piece 30722 failed
[DEBUG   ] 19:12:16 alertmanager:115 hash_failed_alert: xxxxx.avi hash for piece 29644 failed

Should I compile the libtorrent in debug mode? Anything else?

comment:5 by Damien Churchill, 15 years ago

I just tested #1204 and it is now fixed with the latest git master so personally I would just go back to 1.3.

If you really want to find the cause of the problem then running the daemon in gdb and obtaining any back-trace when it crashes.

gdb --args python /usr/bin/deluged -d
run
[[crashes]]
bt

comment:6 by simonbcn, 15 years ago

Ok, I'm testing the git version.
The first time deluged crashed with this output:

gdb --args python /usr/local/bin/deluged -d
GNU gdb (GDB) 7.0-ubuntu
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Leyendo símbolos desde /usr/bin/python...(no debugging symbols found)...hecho.
(gdb) run
Starting program: /usr/bin/python /usr/local/bin/deluged -d
[Thread debugging using libthread_db enabled]
[Nuevo Thread 0xb6fb3b70 (LWP 11848)]
[Nuevo Thread 0xb67b2b70 (LWP 11849)]
[Nuevo Thread 0xb5fb1b70 (LWP 11850)]
[Nuevo Thread 0xb55ffb70 (LWP 11851)]
[Thread 0xb55ffb70 (LWP 11851) terminado]
[ERROR   ] 20:01:33 init:50 Unable to enable plugin!
[ERROR   ] 20:01:33 init:51 'Core' object has no attribute '_timer'
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/deluge-1.2.1-py2.6.egg/deluge/plugins/init.py", line 48, in enable
    self.plugin.enable()
  File "build/bdist.linux-i686/egg/freespace/core.py", line 76, in enable
    if not self._timer:
AttributeError: 'Core' object has no attribute '_timer'
python: malloc.c:3929: __libc_valloc: Afirmación `!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)' fallida.

Program received signal SIGABRT, Aborted.
[Cambiando a Thread 0xb67b2b70 (LWP 11849)]
0xffffe430 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb7e564d1 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7e59932 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7e4f648 in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
#4  0xb7e9b6ef in valloc () from /lib/tls/i686/cmov/libc.so.6
#5  0xb72f66dd in libtorrent::page_aligned_allocator::malloc (bytes=262152) at allocator.cpp:78
#6  0xb7322c7a in boost::pool<libtorrent::page_aligned_allocator>::ordered_malloc_need_resize (this=0x84deb2c) at /usr/include/boost/pool/pool.hpp:461
#7  0xb7318b86 in boost::pool<libtorrent::page_aligned_allocator>::ordered_malloc (this=0x84de9a8, category=0xb74d3d1a "receive buffer")
    at /usr/include/boost/pool/pool.hpp:232
#8  libtorrent::disk_buffer_pool::allocate_buffer (this=0x84de9a8, category=0xb74d3d1a "receive buffer") at disk_io_thread.cpp:120
#9  0xb73d88f9 in libtorrent::aux::session_impl::allocate_disk_buffer (this=0x84de830, category=0xb74d3d1a "receive buffer") at session_impl.cpp:3399
#10 0xb73ab68a in libtorrent::peer_connection::allocate_disk_receive_buffer (this=0xb4be0c08, disk_buffer_size=16384) at peer_connection.cpp:3306
#11 0xb730566d in libtorrent::bt_peer_connection::on_piece (this=0xb4be0c08, received=1) at bt_peer_connection.cpp:1131
#12 0xb7301058 in libtorrent::bt_peer_connection::dispatch_message (this=0xb4be0c08, received=1) at bt_peer_connection.cpp:1600
#13 0xb7306368 in libtorrent::bt_peer_connection::on_receive (this=0xb4be0c08, error=..., bytes_transferred=1) at bt_peer_connection.cpp:2964
#14 0xb73b30e3 in libtorrent::peer_connection::on_receive_data (this=0xb4be0c08, error=..., bytes_transferred=5) at peer_connection.cpp:4356
#15 0xb73b7838 in call<boost::intrusive_ptr<libtorrent::peer_connection> const, boost::system::error_code const, unsigned int> (base=0xb4be10c0)
    at /usr/include/boost/bind/mem_fn_template.hpp:265
#16 operator()<boost::intrusive_ptr<libtorrent::peer_connection> > (base=0xb4be10c0) at /usr/include/boost/bind/mem_fn_template.hpp:286
#17 operator()<boost::_mfi::mf2<void, libtorrent::peer_connection, const boost::system::error_code&, unsigned int>, boost::_bi::list2<const boost::system::error_code&, const unsigned int&> > (base=0xb4be10c0) at /usr/include/boost/bind/bind.hpp:390
#18 operator()<boost::system::error_code, unsigned int> (base=0xb4be10c0) at /usr/include/boost/bind/bind_template.hpp:108
#19 operator()<boost::system::error_code, unsigned int> (base=0xb4be10c0) at ../include/libtorrent/peer_connection.hpp:1050
#20 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>::operator() (base=0xb4be10c0) at /usr/include/boost/asio/detail/bind_handler.hpp:96
#21 asio_handler_invoke<boost::asio::detail::binder2<libtorrent::peer_connection::allocating_handler<boost::_bi::bind_t<void, boost::_mfi::mf2<void, libtorrent---Type <return> to continue, or q <return> to quit---
::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> > (base=0xb4be10c0) at /usr/include/boost/asio/handler_invoke_hook.hpp:62
#22 invoke<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>, 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> > (base=0xb4be10c0) at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:39
#23 asio_handler_invoke<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>, 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> (base=0xb4be10c0)
    at /usr/include/boost/asio/detail/bind_handler.hpp:130
#24 invoke<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>, 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> > (base=0xb4be10c0)
    at /usr/include/boost/asio/detail/handler_invoke_helpers.hpp:39
#25 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 (base=0xb4be10c0)
    at /usr/include/boost/asio/detail/handler_queue.hpp:192
#26 0xb735ffb1 in boost::asio::detail::task_io_service<boost::asio::detail::epoll_reactor<false> >::run(boost::system::error_code&) ()
   from /usr/local/lib/libtorrent-rasterbar.so.6
#27 0xb73eccfc in boost::asio::io_service::run (this=0x84de830) at /usr/include/boost/asio/impl/io_service.ipp:65
#28 libtorrent::aux::session_impl::operator() (this=0x84de830) at session_impl.cpp:2495
---Type <return> to continue, or q <return> to quit---
#29 0xb73fbfa3 in boost::detail::thread_data<boost::reference_wrapper<libtorrent::aux::session_impl> >::run() () from /usr/local/lib/libtorrent-rasterbar.so.6
#30 0xb71daab5 in thread_proxy () from /usr/lib/libboost_thread.so.1.40.0
#31 0xb7fbb80e in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
#32 0xb7ef88de in clone () from /lib/tls/i686/cmov/libc.so.6

I closed the gdb, I started other time and, so far, it works well. I will let it, in this mode, a few hours more. By other hand, if it doesn't crash, how can I close this gdb mode correctly?

comment:7 by andar, 15 years ago

Status: reopenedpending

What operating system are you using? Are you using eglibc?

It looks like this may be caused by a buggy valloc() in elibgc, which is a known issue.

in reply to:  7 comment:8 by simonbcn, 15 years ago

Status: pendingnew

Replying to andar:

What operating system are you using?

Ubuntu 9.10 32 bits

Replying to andar:

Are you using eglibc?

I don't know. How can I find out this?

comment:9 by simonbcn, 15 years ago

Status: newpending

comment:10 by simonbcn, 15 years ago

Status: pendingnew

I have searched info in google and I just read this in EGLIBC site:

Ubuntu 9.10 Shipped With EGLIBC
Ubuntu 9.10, Karmic Koala, shipped with EGLIBC 2.10 for its C library.

How can I fix it then?

comment:11 by simonbcn, 15 years ago

Status: newpending

comment:12 by simonbcn, 15 years ago

Status: pendingnew

There is a problem in this Trac with pending status.
In action now it's marked "leave as pending" but when I submit the comment the status change to new.

comment:13 by simonbcn, 15 years ago

Status: newpending

comment:14 by andar, 15 years ago

Resolution: wontfix
Status: pendingclosed

You can fix this by installing a non-buggy C library.

in reply to:  14 comment:15 by simonbcn, 15 years ago

Replying to andar:

You can fix this by installing a non-buggy C library.

Je je, thanks for other obvious comment, but eglibc developers have not yet solved.
This bug in eglibc affects to others programs: assert hit in eglibc (valloc) with libtorrent v0.15
Christophe Dumez has uploaded a patch to solve this temporally: Patch to disable vAlloc in libtorrent v0.15

comment:16 by Calum, 11 years ago

Milestone: 1.4.0
Note: See TracTickets for help on using tickets.