mirror of
https://github.com/fluencelabs/tendermint
synced 2025-06-14 05:41:21 +00:00
various bug fixes
This commit is contained in:
@ -107,7 +107,9 @@ func (pool *BlockPool) removeTimedoutPeers() {
|
||||
}
|
||||
}
|
||||
if peer.didTimeout {
|
||||
pool.peersMtx.Lock() // Lock
|
||||
pool.removePeer(peer.id)
|
||||
pool.peersMtx.Unlock()
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -224,7 +226,7 @@ func (pool *BlockPool) removePeer(peerID string) {
|
||||
for _, request := range pool.requests {
|
||||
if request.getPeerID() == peerID {
|
||||
pool.numPending++
|
||||
request.redo() // pick another peer and ...
|
||||
go request.redo() // pick another peer and ...
|
||||
}
|
||||
}
|
||||
delete(pool.peers, peerID)
|
||||
@ -430,6 +432,7 @@ func (bpr *bpRequester) reset() {
|
||||
}
|
||||
|
||||
// Tells bpRequester to pick another peer and try again.
|
||||
// NOTE: blocking
|
||||
func (bpr *bpRequester) redo() {
|
||||
bpr.redoCh <- struct{}{}
|
||||
}
|
||||
|
@ -85,7 +85,7 @@ func TestTimeout(t *testing.T) {
|
||||
pool.Start()
|
||||
|
||||
for _, peer := range peers {
|
||||
log.Info("Peer", peer.id)
|
||||
log.Info("Peer", "id", peer.id)
|
||||
}
|
||||
|
||||
// Introduce each peer.
|
||||
|
@ -119,9 +119,9 @@ func (p *Peer) WriteTo(w io.Writer) (n int64, err error) {
|
||||
|
||||
func (p *Peer) String() string {
|
||||
if p.outbound {
|
||||
return fmt.Sprintf("Peer{->%v}", p.mconn)
|
||||
return fmt.Sprintf("Peer{%v out}", p.Key)
|
||||
} else {
|
||||
return fmt.Sprintf("Peer{%v->}", p.mconn)
|
||||
return fmt.Sprintf("Peer{%v in}", p.Key)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -73,11 +73,9 @@ func newPeerInIPRange(ipBytes ...string) *Peer {
|
||||
for i, ipByte := range ipBytes {
|
||||
ips[i] = ipByte
|
||||
}
|
||||
|
||||
for i := len(ipBytes); i < 4; i++ {
|
||||
ips[i] = Fmt("%v", rand.Int()%256)
|
||||
}
|
||||
|
||||
ipS := strings.Join(ips, ".")
|
||||
return &Peer{
|
||||
Key: RandStr(12),
|
||||
@ -92,19 +90,19 @@ func TestIPRanges(t *testing.T) {
|
||||
|
||||
// test /8
|
||||
maxPeersPerIPRange = [4]int{2, 2, 2, 2}
|
||||
peer := newPeerInIPRange("54")
|
||||
peer := newPeerInIPRange("54", "1")
|
||||
if err := peerSet.Add(peer); err != nil {
|
||||
t.Errorf("Failed to add new peer")
|
||||
}
|
||||
peer = newPeerInIPRange("54")
|
||||
peer = newPeerInIPRange("54", "2")
|
||||
if err := peerSet.Add(peer); err != nil {
|
||||
t.Errorf("Failed to add new peer")
|
||||
}
|
||||
peer = newPeerInIPRange("54")
|
||||
peer = newPeerInIPRange("54", "3")
|
||||
if err := peerSet.Add(peer); err == nil {
|
||||
t.Errorf("Added peer when we shouldn't have")
|
||||
}
|
||||
peer = newPeerInIPRange("55")
|
||||
peer = newPeerInIPRange("55", "1")
|
||||
if err := peerSet.Add(peer); err != nil {
|
||||
t.Errorf("Failed to add new peer")
|
||||
}
|
||||
@ -112,19 +110,19 @@ func TestIPRanges(t *testing.T) {
|
||||
// test /16
|
||||
peerSet = NewPeerSet()
|
||||
maxPeersPerIPRange = [4]int{3, 2, 1, 1}
|
||||
peer = newPeerInIPRange("54", "112")
|
||||
peer = newPeerInIPRange("54", "112", "1")
|
||||
if err := peerSet.Add(peer); err != nil {
|
||||
t.Errorf("Failed to add new peer")
|
||||
}
|
||||
peer = newPeerInIPRange("54", "112")
|
||||
peer = newPeerInIPRange("54", "112", "2")
|
||||
if err := peerSet.Add(peer); err != nil {
|
||||
t.Errorf("Failed to add new peer")
|
||||
}
|
||||
peer = newPeerInIPRange("54", "112")
|
||||
peer = newPeerInIPRange("54", "112", "3")
|
||||
if err := peerSet.Add(peer); err == nil {
|
||||
t.Errorf("Added peer when we shouldn't have")
|
||||
}
|
||||
peer = newPeerInIPRange("54", "113")
|
||||
peer = newPeerInIPRange("54", "113", "1")
|
||||
if err := peerSet.Add(peer); err != nil {
|
||||
t.Errorf("Failed to add new peer")
|
||||
}
|
||||
@ -132,19 +130,19 @@ func TestIPRanges(t *testing.T) {
|
||||
// test /24
|
||||
peerSet = NewPeerSet()
|
||||
maxPeersPerIPRange = [4]int{5, 3, 2, 1}
|
||||
peer = newPeerInIPRange("54", "112", "11")
|
||||
peer = newPeerInIPRange("54", "112", "11", "1")
|
||||
if err := peerSet.Add(peer); err != nil {
|
||||
t.Errorf("Failed to add new peer")
|
||||
}
|
||||
peer = newPeerInIPRange("54", "112", "11")
|
||||
peer = newPeerInIPRange("54", "112", "11", "2")
|
||||
if err := peerSet.Add(peer); err != nil {
|
||||
t.Errorf("Failed to add new peer")
|
||||
}
|
||||
peer = newPeerInIPRange("54", "112", "11")
|
||||
peer = newPeerInIPRange("54", "112", "11", "3")
|
||||
if err := peerSet.Add(peer); err == nil {
|
||||
t.Errorf("Added peer when we shouldn't have")
|
||||
}
|
||||
peer = newPeerInIPRange("54", "112", "12")
|
||||
peer = newPeerInIPRange("54", "112", "12", "1")
|
||||
if err := peerSet.Add(peer); err != nil {
|
||||
t.Errorf("Failed to add new peer")
|
||||
}
|
||||
|
Reference in New Issue
Block a user