Infinite download loop for a single tree
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
DC++ |
Confirmed
|
Medium
|
Unassigned |
Bug Description
It goes as follows:
1. DC++ tries to save a downloaded tree in hash data but the data file isn't writable.
2. The client searches for other downloads from the same user and finds the same file again.
3. The client can't find the tree for that file and downloads it again (back to step 1.)
While the problem happens relatively rarely on Windows, it's much more common with Linux clients. Even though there's a log message when the writing fails, it seems that users don't generally notice it, which is why some users have even requested a feature for banning IP addresses from the client (and I've also seen users downloading the same tree from me for several hours).
I've fixed this issue in AirDC++ 2.50 by catching the database exceptions in DownloadManager
description: | updated |
Changed in dcplusplus: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
tags: | added: core |
Instead of lying that the download is faliled and playing with the connections my proposal is trying to play safe and act according what's actually happening: the full tree is not available for whatever reason so it flags the source in the queue item, just like when they were unable to provide the full tree. pastie. org/8225537
http://