There is a bug with it. The torrent stays at 98.0%-99%. Restart helps, but before the next endgame (i.e. if first stop was on 98%, next will be somewhere near 99%).
It is very hard to test due to the short period of the endgame. Common tests do not help (maybe because one remote peer is not enough for this bug to occur).
Maybe it caused by a race condition. The data is not not written (i.e. different hashes of the pieces on the disk and in the torrent-file) and the endgame assignor do not assign new chunks (returns all assigned), when it is requested for peer_control.
Also, eunit tests in the module etorrent_endgame do not fails.
I added few functions for logging and for live debugging into etorrent_endgame and into etorrent_progress files (the code is already merged).
There is a bug with it. The torrent stays at 98.0%-99%. Restart helps, but before the next endgame (i.e. if first stop was on 98%, next will be somewhere near 99%).
It is very hard to test due to the short period of the endgame. Common tests do not help (maybe because one remote peer is not enough for this bug to occur). Maybe it caused by a race condition. The data is not not written (i.e. different hashes of the pieces on the disk and in the torrent-file) and the endgame assignor do not assign new chunks (returns all assigned), when it is requested for
peer_control
.Also, eunit tests in the module
etorrent_endgame
do not fails. I added few functions for logging and for live debugging intoetorrent_endgame
and intoetorrent_progress
files (the code is already merged).