From 94e4aa6ea9aabb5bf6244d9b38607b336703af98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Fri, 5 Jun 2015 11:53:46 +0300 Subject: [PATCH] eth/downloader: log hard timeouts and reset capacity --- eth/downloader/downloader.go | 1 + eth/downloader/peer.go | 3 +++ 2 files changed, 4 insertions(+) diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go index d8dbef726d..626f47b7be 100644 --- a/eth/downloader/downloader.go +++ b/eth/downloader/downloader.go @@ -460,6 +460,7 @@ out: // 3) Amount and availability. if peer := d.peers.Peer(pid); peer != nil { peer.Demote() + glog.V(logger.Detail).Infof("%s: block delivery timeout", peer) } } // After removing bad peers make sure we actually have sufficient peer left to keep downloading diff --git a/eth/downloader/peer.go b/eth/downloader/peer.go index 43b50079b4..5fbc64648f 100644 --- a/eth/downloader/peer.go +++ b/eth/downloader/peer.go @@ -87,6 +87,9 @@ func (p *peer) SetIdle() { scale := 2.0 if time.Since(p.started) > blockSoftTTL { scale = 0.5 + if time.Since(p.started) > blockHardTTL { + scale = 1 / float64(MaxBlockFetch) // reduces capacity to 1 + } } for { // Calculate the new download bandwidth allowance