majestrate / XD

meme bittorrent client
https://xd-torrent.github.io/
MIT License
233 stars 25 forks source link

Repeated request and then cancel same chunks #114

Closed zzzi2p closed 3 months ago

zzzi2p commented 3 months ago

info

0.4.4 (as reported by remote peer, not run by me)

problem

as viewed from i2psnark 2.5.2:

XD repeatedly and without end requesting and then canceling same chunks. sample logs from i2psnark:

05/30 10:34:04.705 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : LVhE@C19zaH 99 rcv request(325, 0, 16384) 
05/30 10:34:04.705 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Queueing (325, 0, 16384) to LVhE@C19zaH 99
05/30 10:34:04.705 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : LVhE@C19zaH 99 rcv request(325, 16384, 16384) 
05/30 10:34:04.705 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Queueing (325, 16384, 16384) to LVhE@C19zaH 99
05/30 10:34:04.705 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : LVhE@C19zaH 99 rcv request(325, 32768, 16384) 
05/30 10:34:04.705 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Queueing (325, 32768, 16384) to LVhE@C19zaH 99
05/30 10:34:04.705 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : LVhE@C19zaH 99 rcv request(325, 49152, 16384) 
05/30 10:34:04.705 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Queueing (325, 49152, 16384) to LVhE@C19zaH 99
05/30 10:34:04.724 DEBUG [hE@C19zaH 99] org.klomp.snark.PeerState     : Sending (325, 0, 16384) to LVhE@C19zaH 99
05/30 10:34:06.295 DEBUG [hE@C19zaH 99] org.klomp.snark.PeerState     : Sending (325, 16384, 16384) to LVhE@C19zaH 99
05/30 10:34:06.647 DEBUG [hE@C19zaH 99] org.klomp.snark.PeerState     : Sending (325, 32768, 16384) to LVhE@C19zaH 99
05/30 10:34:07.525 DEBUG [hE@C19zaH 99] org.klomp.snark.PeerState     : Sending (325, 49152, 16384) to LVhE@C19zaH 99
05/30 10:34:32.827 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Got cancel message (325, 0, 16384)
05/30 10:34:32.827 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Got cancel message (325, 16384, 16384)
05/30 10:34:32.827 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Got cancel message (325, 32768, 16384)
05/30 10:34:32.827 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Got cancel message (325, 49152, 16384)
05/30 10:34:32.827 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : LVhE@C19zaH 99 rcv request(325, 0, 16384) 
05/30 10:34:32.827 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Queueing (325, 0, 16384) to LVhE@C19zaH 99
05/30 10:34:32.827 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : LVhE@C19zaH 99 rcv request(325, 16384, 16384) 
05/30 10:34:32.827 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Queueing (325, 16384, 16384) to LVhE@C19zaH 99
05/30 10:34:32.827 DEBUG [hE@C19zaH 99] org.klomp.snark.PeerState     : Sending (325, 0, 16384) to LVhE@C19zaH 99
05/30 10:34:33.315 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : LVhE@C19zaH 99 rcv request(325, 32768, 16384) 
05/30 10:34:33.315 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Queueing (325, 32768, 16384) to LVhE@C19zaH 99
05/30 10:34:33.315 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : LVhE@C19zaH 99 rcv request(325, 49152, 16384) 
05/30 10:34:33.315 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Queueing (325, 49152, 16384) to LVhE@C19zaH 99
05/30 10:34:34.812 DEBUG [hE@C19zaH 99] org.klomp.snark.PeerState     : Sending (325, 16384, 16384) to LVhE@C19zaH 99
05/30 10:34:36.833 DEBUG [hE@C19zaH 99] org.klomp.snark.PeerState     : Sending (325, 32768, 16384) to LVhE@C19zaH 99
05/30 10:34:40.850 DEBUG [hE@C19zaH 99] org.klomp.snark.PeerState     : Sending (325, 49152, 16384) to LVhE@C19zaH 99
05/30 10:35:03.192 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Got cancel message (325, 0, 16384)
05/30 10:35:03.192 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Got cancel message (325, 16384, 16384)
05/30 10:35:03.192 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Got cancel message (325, 32768, 16384)
05/30 10:35:03.192 DEBUG [ LVhE@C19zaH] org.klomp.snark.PeerState     : Got cancel message (325, 49152, 16384)

this continues nonstop until the peer is disconnected.

Note that the cancel is only received long after the chunks were sent (and presumably received) which isn't right either.

If this is already fixed in 0.4.5 or later please disregard, I am not running XD locally.

majestrate commented 3 months ago

this should have been addressed in 0.4.5, let me know if this is not the case. i got a patch just for it.

zzzi2p commented 3 months ago

OK thanks. Not a ton of XD clients but will keep an eye out, and also try to get out the word for 0.4.4 or earlier to update to the latest. If you think it's fixed feel free to close this issue.

majestrate commented 3 months ago

i suspect it is fixed, re-open if 0.4.5 shows the same problem

majestrate commented 3 months ago

rather, 0.4.6