Skip to content

Commit

Permalink
Added comments and variables instead of raw reason strings
Browse files Browse the repository at this point in the history
  • Loading branch information
mh0lt committed Apr 29, 2024
1 parent 9db99ed commit a06a84c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
8 changes: 6 additions & 2 deletions peer.go
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,8 @@ func (cn *Peer) request(r RequestIndex) (more bool, err error) {
return cn.peerImpl._request(ppReq), nil
}

var peerUpdateRequestsPeerCancelReason = "Peer.cancel"

func (me *Peer) cancel(r RequestIndex) {
if !me.deleteRequest(r) {
panic("request not existing should have been guarded")
Expand All @@ -480,7 +482,7 @@ func (me *Peer) cancel(r RequestIndex) {
}
me.decPeakRequests()
if me.isLowOnRequests() {
me.updateRequests("Peer.cancel")
me.updateRequests(peerUpdateRequestsPeerCancelReason)
}
}

Expand Down Expand Up @@ -566,6 +568,8 @@ func runSafeExtraneous(f func()) {
}
}

var peerUpdateRequestsRemoteRejectReason = "Peer.remoteRejectedRequest"

// Returns true if it was valid to reject the request.
func (c *Peer) remoteRejectedRequest(r RequestIndex) bool {
if c.deleteRequest(r) {
Expand All @@ -574,7 +578,7 @@ func (c *Peer) remoteRejectedRequest(r RequestIndex) bool {
return false
}
if c.isLowOnRequests() {
c.updateRequests("Peer.remoteRejectedRequest")
c.updateRequests(peerUpdateRequestsRemoteRejectReason)
}
c.decExpectedChunkReceive(r)
return true
Expand Down
11 changes: 9 additions & 2 deletions requesting.go
Original file line number Diff line number Diff line change
Expand Up @@ -313,13 +313,20 @@ func (p *Peer) applyRequestState(next desiredRequestState) {
panic("changed")
}

if p.needRequestUpdate == "Peer.remoteRejectedRequest" {
// don't add requests on reciept of a reject - because this causes request back
// to potentially permanently unresponive peers - which just adds network noise. If
// the peer can handle more requests it will send an "unchoked" message - which
// will cause it to get added back to the request queue
if p.needRequestUpdate == peerUpdateRequestsRemoteRejectReason {
continue
}

existing := t.requestingPeer(req)
if existing != nil && existing != p {
if p.needRequestUpdate == "Peer.cancel" {
// don't steal on cancel - because this is triggered by t.cancelRequest below
// which means that the cancelled can immediately try to steal back a request
// it has lost which can lead to circular cancel/add processing
if p.needRequestUpdate == peerUpdateRequestsPeerCancelReason {
continue
}

Expand Down

0 comments on commit a06a84c

Please sign in to comment.