#2889 closed Bug (fixed)
For tracker announces, handle up/down/corrupt counts on a per-tier basis
Reported by: | charles | Owned by: | charles |
---|---|---|---|
Priority: | Normal | Milestone: | 1.90 |
Component: | libtransmission | Version: | 1.83 |
Severity: | Critical | Keywords: | |
Cc: |
Description (last modified by charles)
Up through Transmission 1.83, these fields were held on a per-torrent basis.
The problem is that 1.7x and 1.8x have a seed-until-ratio feature, and users who set that ratio to 0 would have their torrents stop immediately after becoming seeds. Apparently the Mac client's torrent queue code could do the same thing in certain circumstances.
Stopping the torrent upon completion (either via the seed-until ratio, or via the Mac client's queue code) resets the up/down/corrupt count to zero, so there is a race condition between resetting those counts and firing out an &event=completed announce with accurate &uploaded=X &downloaded=Y &corrupt=Z values to the tracker.
A secondary, much smaller problem is that by keeping the byte counts at the per-tier level, we send the same values to all trackers, even if one of them was added after the torrent was started.
One way to fix both of these problems is by accumulating up/down/corrupt byte counts on a per-tier basis. These counts would only be reset when we send an &event=stopped announcement and receive a response from the tracker, and wouldn't care if the torrent was stopped a few milliseconds earlier by the seed ratio code.
Change History (3)
comment:1 Changed 13 years ago by charles
- Status changed from new to assigned
comment:2 Changed 13 years ago by charles
- Resolution set to fixed
- Status changed from assigned to closed
comment:3 Changed 13 years ago by charles
- Description modified (diff)
fixed in r10141 for 1.90.