y500 / libtorrent

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

Deluge asserts when disk is full. #161

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
1. Generally downloading torrents to a disk that is full

Expected output is not to crash but to either pause the torrent and inform the 
user there is no space left, or still inform the user and switch to seed only 
mode.
What I see is a back trace of crashed deluge.

deluge 1.3.1, libtorrent-rasterbar 0.15.5, Linux

Using gdb, I have found this:

assertion failed. Please file a bugreport at 
http://code.rasterbar.com/libtorrent/newticket
Please include the following information:

version: 0.15.5.0
$Rev: 5141 $
file: 'storage.cpp'
line: 1930
function: int libtorrent::piece_manager::write_impl(libtorrent::file::iovec_t*, 
int, int, int)
expression: offset >= hash_offset
stack:
1: assert_fail(char const*, int, char const*, char const*)
2: libtorrent::piece_manager::write_impl(iovec*, int, int, int)
3: 
libtorrent::disk_io_thread::flush_range(std::_List_iterator<libtorrent::disk_io_
thread::cached_piece_entry>, int, int, 
boost::unique_lock<boost::recursive_mutex>&)
4: 
libtorrent::disk_io_thread::flush_and_remove(std::_List_iterator<libtorrent::dis
k_io_thread::cached_piece_entry>, boost::unique_lock<boost::recursive_mutex>&)
5: libtorrent::disk_io_thread::flush_expired_pieces()
6: libtorrent::disk_io_thread::operator()()
7: 
8: thread_proxy
9: 
10: clone

Program received signal SIGINT, Interrupt.
[Switching to Thread 0xb4f67b70 (LWP 17557)]
0xb7fe1424 in __kernel_vsyscall ()
(gdb) bt
#0  0xb7fe1424 in __kernel_vsyscall ()
#1  0xb7e410d6 in raise () from /lib/libpthread.so.0
#2  0xb51e448d in assert_fail (expr=0xb543b18a "offset >= hash_offset", 
    line=1930, file=0xb53e3e1d "storage.cpp", 
    function=0xb543c7a0 "int libtorrent::piece_manager::write_impl(libtorrent::file::iovec_t*, int, int, int)") at assert.cpp:136
#3  0xb5319af2 in libtorrent::piece_manager::write_impl (this=0x8984f40, 
    bufs=0xb4f66530, piece_index=3118, offset=147456, num_bufs=1)
    at storage.cpp:1930
#4  0xb521139e in libtorrent::disk_io_thread::flush_range (this=0x8642d14, 
    e=..., start=0, end=256, l=...) at disk_io_thread.cpp:704
#5  0xb5211c9d in libtorrent::disk_io_thread::flush_and_remove (
    this=0x8642d14, e=..., l=...) at disk_io_thread.cpp:662
#6  0xb5211da2 in libtorrent::disk_io_thread::flush_expired_pieces (
    this=0x8642d14) at disk_io_thread.cpp:461
#7  0xb5214b31 in libtorrent::disk_io_thread::operator() (this=0x8642d14)
    at disk_io_thread.cpp:1561
#8  0xb521f5a1 in 
boost::detail::thread_data<boost::reference_wrapper<libtorrent::disk_io_thread> 
>::run() () from /usr/lib/libtorrent-rasterbar.so.6
#9  0xb512cacc in thread_proxy () from /usr/lib/libboost_thread-mt.so.1.45.0
#10 0xb7e38a55 in start_thread () from /lib/libpthread.so.0
#11 0xb7d8573e in clone () from /lib/libc.so.6
(gdb) 

Original issue reported on code.google.com by monster....@gmail.com on 6 Feb 2011 at 1:50

GoogleCodeExporter commented 8 years ago
I think you should post this to deluge's bug tracker located 
here->http://dev.deluge-torrent.org/report/1 (you must login first)

I am pretty sure that libtorrent notifies when the disk is full, but deluge 
doesn't catch that error/event in it's code.

Original comment by hammered...@gmail.com on 7 Feb 2011 at 3:33

GoogleCodeExporter commented 8 years ago
Why the hell even list on google project page when I finally find out your 
using subversion for libtorrent-rasterbar on sourceforge. and your not even 
using this bug tracker either. I'll register and do that on said deluge bug 
tracker.

Original comment by monster....@gmail.com on 8 Feb 2011 at 12:14

GoogleCodeExporter commented 8 years ago
what makes you think I'm not using this bug tracker? It's full of recent 
activity

Original comment by ar...@bittorrent.com on 8 Feb 2011 at 5:52

GoogleCodeExporter commented 8 years ago

Original comment by arvid.no...@gmail.com on 9 Feb 2011 at 3:22