fix merge

This commit is contained in:
tycho garen
2022-06-14 13:00:14 -04:00
5 changed files with 28 additions and 15 deletions
+16 -7
View File
@@ -15,6 +15,7 @@ import (
dbm "github.com/tendermint/tm-db"
tmsync "github.com/tendermint/tendermint/internal/libs/sync"
"github.com/tendermint/tendermint/libs/log"
p2pproto "github.com/tendermint/tendermint/proto/tendermint/p2p"
"github.com/tendermint/tendermint/types"
)
@@ -148,6 +149,8 @@ type PeerManagerOptions struct {
// Peer Metrics
Metrics *Metrics
// Logger
Logger log.Logger
}
// Validate validates the options.
@@ -268,6 +271,7 @@ type PeerManager struct {
rand *rand.Rand
dialWaker *tmsync.Waker // wakes up DialNext() on relevant peer changes
evictWaker *tmsync.Waker // wakes up EvictNext() on relevant peer changes
logger log.Logger
mtx sync.Mutex
store *peerStore
@@ -297,12 +301,14 @@ func NewPeerManager(selfID types.NodeID, peerDB dbm.DB, options PeerManagerOptio
}
peerManager := &PeerManager{
selfID: selfID,
options: options,
rand: rand.New(rand.NewSource(time.Now().UnixNano())), // nolint:gosec
dialWaker: tmsync.NewWaker(),
evictWaker: tmsync.NewWaker(),
metrics: NopMetrics(),
selfID: selfID,
options: options,
rand: rand.New(rand.NewSource(time.Now().UnixNano())), // nolint:gosec
dialWaker: tmsync.NewWaker(),
evictWaker: tmsync.NewWaker(),
metrics: NopMetrics(),
logger: log.NewNopLogger(),
store: store,
dialing: map[types.NodeID]bool{},
upgrading: map[types.NodeID]types.NodeID{},
@@ -316,6 +322,9 @@ func NewPeerManager(selfID types.NodeID, peerDB dbm.DB, options PeerManagerOptio
if options.Metrics != nil {
peerManager.metrics = options.Metrics
}
if options.Logger != nil {
peerManager.logger = options.Logger
}
if err = peerManager.configurePeers(); err != nil {
return nil, err
@@ -400,7 +409,7 @@ func (m *PeerManager) Add(address NodeAddress) (bool, error) {
return false, err
}
if address.NodeID == m.selfID {
return false, fmt.Errorf("can't add self (%v) to peer store", m.selfID)
return false, nil
}
m.mtx.Lock()
+8 -6
View File
@@ -265,8 +265,9 @@ func TestPeerManager_Add(t *testing.T) {
require.Error(t, err)
// Adding self should error
_, err = peerManager.Add(p2p.NodeAddress{Protocol: "memory", NodeID: selfID})
require.Error(t, err)
ok, err := peerManager.Add(p2p.NodeAddress{Protocol: "memory", NodeID: selfID})
require.False(t, ok)
require.NoError(t, err)
}
func TestPeerManager_DialNext(t *testing.T) {
@@ -842,13 +843,14 @@ func TestPeerManager_Dialed_Connected(t *testing.T) {
require.Error(t, peerManager.Dialed(b))
}
func TestPeerManager_Dialed_Self(t *testing.T) {
func TestPeerManager_Adding_Self(t *testing.T) {
peerManager, err := p2p.NewPeerManager(selfID, dbm.NewMemDB(), p2p.PeerManagerOptions{})
require.NoError(t, err)
// Dialing self should error.
_, err = peerManager.Add(p2p.NodeAddress{Protocol: "memory", NodeID: selfID})
require.Error(t, err)
// Ingesting self should not error.
ok, err := peerManager.Add(p2p.NodeAddress{Protocol: "memory", NodeID: selfID})
require.False(t, ok)
require.NoError(t, err)
}
func TestPeerManager_Dialed_MaxConnected(t *testing.T) {
+1 -1
View File
@@ -203,7 +203,7 @@ func makeNode(
}
}
peerManager, peerCloser, err := createPeerManager(cfg, dbProvider, nodeKey.ID, nodeMetrics.p2p)
peerManager, peerCloser, err := createPeerManager(logger, cfg, dbProvider, nodeKey.ID, nodeMetrics.p2p)
closers = append(closers, peerCloser)
if err != nil {
return nil, combineCloseError(
+1 -1
View File
@@ -67,7 +67,7 @@ func makeSeedNode(
// Setup Transport and Switch.
p2pMetrics := p2p.PrometheusMetrics(cfg.Instrumentation.Namespace, "chain_id", genDoc.ChainID)
peerManager, closer, err := createPeerManager(cfg, dbProvider, nodeKey.ID, p2pMetrics)
peerManager, closer, err := createPeerManager(logger, cfg, dbProvider, nodeKey.ID, p2pMetrics)
if err != nil {
return nil, combineCloseError(
fmt.Errorf("failed to create peer manager: %w", err),
+2
View File
@@ -199,6 +199,7 @@ func createEvidenceReactor(
}
func createPeerManager(
logger log.Logger,
cfg *config.Config,
dbProvider config.DBProvider,
nodeID types.NodeID,
@@ -227,6 +228,7 @@ func createPeerManager(
maxUpgradeConns := uint16(4)
options := p2p.PeerManagerOptions{
Logger: logger.With("module", "peermanager"),
SelfAddress: selfAddr,
MaxConnected: maxConns,
MaxConnectedUpgrade: maxUpgradeConns,