Package: rtorrent
Version: 0.8.9-2
Followup-For: Bug #599913

rtorrent 0.8.6-1 used to be crashing every several weeks for
me. (Though I do not actually remember whether there were
std::bad_alloc messages. I thought so but several recent crashes in
squeeze had basic_string::resize messages.)

After upgrading to wheezy rtorrent started to crash much more
often. Either immediately after start or about half an hour later,
often with the messed up *** glibc detected *** rtorrent: corrupted
double-linked list: 0x094c7a18 *** messages, requiring reset in the
terminal to get readable output from any subsequent command.

Running rtorrent under valgrind appears to prevent crashes.

After recompiling libtorrent 0.12.9-3 with DEB_BUILD_OPTIONS=nostrip
I get the following:


valgrind:

==5193== Memcheck, a memory error detector
==5193== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==5193== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==5193== Command: rtorrent
==5193== Parent PID: 5237
==5193== 
==5193== Invalid write of size 4
==5193==    at 0x4BB56DB: 
torrent::DhtServer::process_queue(std::deque<torrent::DhtTransactionPacket*, 
std::allocator<torrent::DhtTransactionPacket*> >&, unsigned int*) 
(dht_transaction.h:308)
==5193==    by 0x4BB5A7E: torrent::DhtServer::event_write() (dht_server.cc:868)
==5193==    by 0xFE9ED2F7: ???
==5193==  Address 0xbe3dd30 is 64 bytes inside a block of size 68 free'd
==5193==    at 0x47B309C: operator delete(void*) (in 
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==5193==    by 0x4BB7431: torrent::DhtTransactionPing::~DhtTransactionPing() 
(dht_transaction.h:359)
==5193==    by 0x980C2DB: ???
==5193== 
==5193== Conditional jump or move depends on uninitialised value(s)
==5193==    at 0x4BD363A: torrent::SocketFd::set_priority(unsigned char) 
(socket_fd.cc:74)
==5193==    by 0x4BDCF8E: 
torrent::HandshakeManager::setup_socket(torrent::SocketFd) 
(handshake_manager.cc:291)
==5193==    by 0x4BDE335: 
torrent::HandshakeManager::add_incoming(torrent::SocketFd, rak::socket_address 
const&) (handshake_manager.cc:112)
==5193==    by 0x4BD2CE9: torrent::Listen::event_read() (functional.h:565)
==5193==    by 0x8A135152: ???
==5193== 
==5193== 
==5193== HEAP SUMMARY:
==5193==     in use at exit: 1,116,798 bytes in 378 blocks
==5193==   total heap usage: 368,383 allocs, 368,005 frees, 27,458,737 bytes 
allocated
==5193== 
==5193== LEAK SUMMARY:
==5193==    definitely lost: 222,079 bytes in 130 blocks
==5193==    indirectly lost: 0 bytes in 0 blocks
==5193==      possibly lost: 2,560 bytes in 6 blocks
==5193==    still reachable: 892,159 bytes in 242 blocks
==5193==         suppressed: 0 bytes in 0 blocks
==5193== Rerun with --leak-check=full to see details of leaked memory
==5193== 
==5193== For counts of detected and suppressed errors, rerun with: -v
==5193== Use --track-origins=yes to see where uninitialised values come from
==5193== ERROR SUMMARY: 3 errors from 2 contexts (suppressed: 97 from 10)


crash:

Program terminated with signal 6, Aborted.
#0  0xf7787425 in __kernel_vsyscall ()
(gdb) bt full
#0  0xf7787425 in __kernel_vsyscall ()
No symbol table info available.
#1  0xf72f9941 in *__GI_raise (sig=6) at 
../nptl/sysdeps/unix/sysv/linux/raise.c:64
        resultvar = <optimized out>
        pid = -146636812
        selftid = 5249
#2  0xf72fcd72 in *__GI_abort () at abort.c:92
        act = {__sigaction_handler = {sa_handler = 0xf77a44e4 
<_rtld_global+1220>, sa_sigaction = 0xf77a44e4 <_rtld_global+1220>}, sa_mask = 
{__val = {851968, 4149070080, 
              4148727728, 4292974972, 158281, 4292974940, 4148667552, 
4148648944, 0, 63, 4292974784, 4147738760, 9, 4292974868, 4148330484, 5, 
4292976328, 4292974988, 4147857284, 
              136, 4292974868, 9, 0, 4292974964, 0, 7, 4148187836, 4148187832, 
4148183311, 4148183376, 37, 4292974868}}, sa_flags = -1992356, sa_restorer = 
0xf7406696}
        sigs = {__val = {32, 0 <repeats 31 times>}}
#3  0xf73332f5 in __libc_message (do_abort=2, fmt=0xf7408530 "*** glibc 
detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
        ap = <optimized out>
        fd = -1991996
        on_2 = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
        written = false
#4  0xf733d3e1 in malloc_printerr (action=<optimized out>, str=0x6 <Address 0x6 
out of bounds>, ptr=0x94c7a18) at malloc.c:6283
        buf = "094c7a18"
        cp = <optimized out>
#5  0xf733d81e in malloc_consolidate (av=<optimized out>) at malloc.c:5161
        fb = 0xf74293d0
        maxfb = 0xf74293ec
        p = 0x94c7a18
        nextp = 0x9547a98
        unsorted_bin = 0xf74293f0
        first_unsorted = <optimized out>
        nextchunk = 0x94c7a38
        size = <optimized out>
        nextsize = 56
        prevsize = <optimized out>
        bck = <optimized out>
        fwd = 0x9547a98
        __func__ = "malloc_consolidate"
#6  0xf733f955 in _int_malloc (av=<optimized out>, bytes=<optimized out>) at 
malloc.c:4373
        nb = 4760
        idx = <optimized out>
        bin = <optimized out>
        victim = <optimized out>
        size = <optimized out>
        victim_index = <optimized out>
        remainder = <optimized out>
        remainder_size = <optimized out>
        block = <optimized out>
        bit = <optimized out>
        map = <optimized out>
        fwd = <optimized out>
        bck = <optimized out>
        errstr = <optimized out>
        __func__ = "_int_malloc"
#7  0xf7341dcc in *__GI___libc_malloc (bytes=4752) at malloc.c:3660
        ar_ptr = 0xf74293c0
        victim = <optimized out>
        __func__ = "__libc_malloc"
#8  0xf74bf555 in operator new(unsigned int) () from 
/usr/lib/i386-linux-gnu/libstdc++.so.6
No symbol table info available.
#9  0xf76404ac in torrent::HandshakeManager::add_incoming (this=0x90d3d58, 
fd=..., sa=...) at handshake_manager.cc:120
        h = <optimized out>
#10 0xf7634cea in operator() (a2=..., a1=..., this=0x90d4554) at 
../../rak/functional.h:565
No locals.
#11 torrent::Listen::event_read (this=0x90d4540) at listen.cc:118
        sa = {static af_inet = 2, static pf_inet = 2, static af_inet6 = 10, 
static pf_inet6 = 10, static af_unspec = 0, static pf_unspec = 0, static 
af_local = 1, 
          static pf_local = 1, {m_sockaddr = {sa_family = 2, sa_data = 
"\362\031Od\352;\000\000\000\000o\322", <incomplete sequence \367>}, 
m_sockaddrInet = {sin_family = 2, 
              sin_port = 6642, sin_addr = {s_addr = 1005216847}, sin_zero = 
"\000\000\000\000o\322", <incomplete sequence \367>}, m_sockaddrInet6 = 
{sin6_family = 2, 
              sin6_port = 6642, sin6_flowinfo = 1005216847, sin6_addr = 
{__in6_u = {__u6_addr8 = "\000\000\000\000o\322K\367\364?U\367@F\r\t", 
__u6_addr16 = {0, 0, 53871, 63307, 
                    16372, 63317, 17984, 2317}, __u6_addr32 = {0, 4148941423, 
4149559284, 151864896}}}, sin6_scope_id = 157644360}}}
        fd = {m_fd = 135, m_ipv6_socket = 38}
#12 0xf75d3169 in torrent::PollEPoll::perform (this=0x90c9660) at 
poll_epoll.cc:170
        evItr = <optimized out>
        itr = 0x90c9688
        last = 0x90c9694
#13 0x080f9d10 in ?? ()
No symbol table info available.
#14 0x08057ed8 in ?? ()
No symbol table info available.
#15 0xf72e5e46 in __libc_start_main (main=0x8054510, argc=1, ubp_av=0xffe1a4c4, 
init=0x8135f10, fini=0x8135f00, rtld_fini=0xf7796300, stack_end=0xffe1a4bc) at 
libc-start.c:228
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-146636812, 0, 0, -1989480, 
1246374742, -708936377}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x1, 
0x80584d8}, data = {
              prev = 0x0, cleanup = 0x0, canceltype = 1}}}
        not_first_call = <optimized out>
#16 0x080584f9 in ?? ()
No symbol table info available.



-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (900, 'testing'), (400, 'stable')
Architecture: i386 (x86_64)

Kernel: Linux 3.2.0-2-amd64 (SMP w/2 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages rtorrent depends on:
ii  libc6               2.13-32
ii  libcurl3            7.25.0-1
ii  libgcc1             1:4.7.0-7
ii  libncursesw5        5.9-7
ii  libsigc++-2.0-0c2a  2.2.10-0.1
ii  libstdc++6          4.7.0-7
ii  libtinfo5           5.9-7
ii  libtorrent14        0.12.9-3
ii  libxmlrpc-core-c3   1.16.33-3.1

rtorrent recommends no packages.

Versions of packages rtorrent suggests:
ii  screen  4.0.3-14

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to