xlgjjff / libtorrent

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

Floating point exception when using pieces deadline #731

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
Python binding:
1. Create and start torrent_handle for torrent 
(https://yts.to/torrent/download/05FF983BDE32352D3C7E65AE4731F588F1CC19F4.torren
t)

2. Set priority for pieces of mp4 file to 1, rest to 0

3. Set deadline for first 6 pieces of file (1+ i*1000)

4. Program crashes in libtorrent -  details from gdb:

Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x7ffff2d0c700 (LWP 21302)]
0x00007ffff5e5c27e in libtorrent::aux::session_impl::try_connect_more_peers 
(this=this@entry=0xe5f210, num_downloads=num_downloads@entry=1, 
    num_downloads_peers=num_downloads_peers@entry=28) at session_impl.cpp:4569
4569                            num_attempts += m_num_active_finished / m_num_active_downloading;

Looks like division by zero

What is the expected output? What do you see instead?
No error, it should work.

What version of the product are you using? On what operating system?
1.0.4.0
Platform: Ubuntu 14.04 

Please provide any additional information below.

Actually  it seem to be caused by some marginal situation - because it works 
for other torrents,  even for this torrent when some pieces are already 
downloaded.
Also the previous version (0.16.. - which is in Ubuntu repos) does not have 
this problem.

It seems to be related to pieces deadlines -  if I just comment setting pieces 
deadlines, then it works normally, without issues

Original issue reported on code.google.com by ivan.zde...@gmail.com on 9 Apr 2015 at 8:55

GoogleCodeExporter commented 8 years ago
Thanks! fixed in RC_1_0 in [10964].

Original comment by arvid.no...@gmail.com on 11 Apr 2015 at 6:25