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