Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#286 closed Bug (invalid)

stress of tracker doesn't work due to tc->minInterval

Reported by: mtolman Owned by:
Priority: Normal Milestone:
Component: libtransmission Version: 0.80
Severity: Minor Keywords:
Cc:

Description

Please correct me if I am wrong.

In tracker.c, starting at line 271. As I understand it, if the trorrent has many peers, the code is supposed to check if we have very few peers connected and override the standard scrape interval with much shorter values i.e. 10 seconds.

The bug is in the three lines like the following:

if( now > tc->dateOk + 1000 * MAX( 10, tc->minInterval ) )

Since the server changes tc->minInterval upon init, the override fails since tc->minInterval will pretty much always be larger than 10. It is 1800 seconds on one server I frequent. I just removed the MAX() and hard coded the times needed.

if( now > tc->dateOk + 10000 )

Change History (6)

comment:1 Changed 12 years ago by charles

  • Milestone changed from Sometime to 0.81
  • Severity changed from Normal to Minor

I think you're correct, but I'm wondering if this code is ever called at all since there's probably not a tracker on the planet that doesn't have minimum announce intervals. I wonder if it wouldn't make more sense to just remove this section of the code.

comment:2 Changed 12 years ago by charles

  • Resolution set to fixed
  • Status changed from new to closed

We already reannounce as frequently as min_interval allows, and can't go any faster than that without getting banned, so the code as-is has no purpose. If we change it to the patch, we're actually going around min_interval, which would get us banned. IMO the only thing to do is remove the code.

comment:3 Changed 12 years ago by livings124

  • Milestone 0.81 deleted
  • Resolution fixed deleted
  • Status changed from closed to reopened

With this code removed we're no longer using the min interval, instead we just follow the regular interval even if the min interval is lower. That code worked when there was no minimum interval or the minimum interval was less than the regular announce interval. At the least we should consider announcing when we're below the regular announce interval and above the min interval in cases with low peers (what this field is essentially there for).

comment:4 Changed 12 years ago by livings124

  • Milestone set to 0.81

comment:5 Changed 12 years ago by livings124

  • Resolution set to invalid
  • Status changed from reopened to closed

The original way was correct, and the change has been reverted.

comment:6 Changed 12 years ago by anonymous

  • Milestone 0.81 deleted

Milestone 0.81 deleted

Note: See TracTickets for help on using tickets.