mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
les: fix issue
This commit is contained in:
parent
8c6e652c6d
commit
1b18d419c1
2 changed files with 9 additions and 7 deletions
|
|
@ -127,16 +127,17 @@ func (h *serverHandler) handle(p *peer) error {
|
||||||
}
|
}
|
||||||
defer p.fcClient.Disconnect()
|
defer p.fcClient.Disconnect()
|
||||||
|
|
||||||
// Register the peer locally
|
|
||||||
if err := h.server.peers.Register(p); err != nil {
|
|
||||||
p.Log().Error("Light Ethereum peer registration failed", "err", err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
// Disconnect the inbound peer if it's rejected by clientPool
|
// Disconnect the inbound peer if it's rejected by clientPool
|
||||||
if h.server.clientPool.connect(p, 0) {
|
if !h.server.clientPool.connect(p, 0) {
|
||||||
p.Log().Debug("Light Ethereum peer registration failed", "err", errFullClientPool)
|
p.Log().Debug("Light Ethereum peer registration failed", "err", errFullClientPool)
|
||||||
return errFullClientPool
|
return errFullClientPool
|
||||||
}
|
}
|
||||||
|
// Register the peer locally
|
||||||
|
if err := h.server.peers.Register(p); err != nil {
|
||||||
|
h.server.clientPool.disconnect(p)
|
||||||
|
p.Log().Error("Light Ethereum peer registration failed", "err", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
clientConnectionGauge.Update(int64(h.server.peers.Len()))
|
clientConnectionGauge.Update(int64(h.server.peers.Len()))
|
||||||
|
|
||||||
var wg sync.WaitGroup // Wait group used to track all in-flight task routines.
|
var wg sync.WaitGroup // Wait group used to track all in-flight task routines.
|
||||||
|
|
@ -144,8 +145,8 @@ func (h *serverHandler) handle(p *peer) error {
|
||||||
connectedAt := mclock.Now()
|
connectedAt := mclock.Now()
|
||||||
defer func() {
|
defer func() {
|
||||||
wg.Wait() // Ensure all background task routines have exited.
|
wg.Wait() // Ensure all background task routines have exited.
|
||||||
h.server.clientPool.disconnect(p)
|
|
||||||
h.server.peers.Unregister(p.id)
|
h.server.peers.Unregister(p.id)
|
||||||
|
h.server.clientPool.disconnect(p)
|
||||||
clientConnectionGauge.Update(int64(h.server.peers.Len()))
|
clientConnectionGauge.Update(int64(h.server.peers.Len()))
|
||||||
connectionTimer.Update(time.Duration(mclock.Now() - connectedAt))
|
connectionTimer.Update(time.Duration(mclock.Now() - connectedAt))
|
||||||
}()
|
}()
|
||||||
|
|
|
||||||
|
|
@ -281,6 +281,7 @@ func newTestServerHandler(blocks int, indexers []*core.ChainIndexer, db ethdb.Da
|
||||||
server.costTracker, server.freeCapacity = newCostTracker(db, server.config)
|
server.costTracker, server.freeCapacity = newCostTracker(db, server.config)
|
||||||
server.costTracker.testCostList = testCostList(0) // Disable flow control mechanism.
|
server.costTracker.testCostList = testCostList(0) // Disable flow control mechanism.
|
||||||
server.clientPool = newClientPool(db, 1, 10000, clock, nil)
|
server.clientPool = newClientPool(db, 1, 10000, clock, nil)
|
||||||
|
server.clientPool.setLimits(10000, 10000) // Assign enough capacity for clientpool
|
||||||
server.handler = newServerHandler(server, simulation.Blockchain(), db, txpool, func() bool { return true })
|
server.handler = newServerHandler(server, simulation.Blockchain(), db, txpool, func() bool { return true })
|
||||||
if server.oracle != nil {
|
if server.oracle != nil {
|
||||||
server.oracle.start(simulation)
|
server.oracle.start(simulation)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue