Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1587 closed Bug (fixed)

Transmission holds onto nonproductive peers longer than it should

Reported by: charles Owned by: charles
Priority: Normal Milestone: 1.41
Component: libtransmission Version: 1.40
Severity: Major Keywords:
Cc:

Description (last modified by charles)

The peer manager has some errors which cause it to hold onto nonproductive peers longer than it should.

(1) The manager uses tr_peer.pieceDataActivityDate to decide how long a peer's been idle. Unfortunately, at some point that variable stopped being assigned any value. Since atom.piece_data_time does everything we need, tr_peer.pieceDataActivityDate can go away, as can tr_peer.peerSentPieceDataAt.

(2) atom.piece_data_time is incorrectly updated whenever data is sent or received. it should only be updated whenever piece data is sent or received.

(3) In shouldPeerBeClosed(), idleTime (the time a peer is allowed to be idle) increases as strictness increases. It should decrease as strictness increases.

(4) the minimum timeout period is too high for situations where we are peer-rich.

These are really stupid bugs. :)

Change History (6)

comment:1 Changed 12 years ago by charles

  • Owner set to charles
  • Status changed from new to assigned

fixed in trunk in r7353.

fixed in 1.4x branch in r7354.

comment:2 Changed 12 years ago by charles

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

comment:3 Changed 12 years ago by charles

  • Description modified (diff)

comment:4 Changed 12 years ago by charles

  • Description modified (diff)

comment:5 Changed 12 years ago by charles

  • Description modified (diff)

comment:6 Changed 12 years ago by charles

  • Component changed from Transmission to libtransmission
Note: See TracTickets for help on using tickets.