Fix memory leak in txpool

This commit is contained in:
Ferran Borreguero 2021-10-07 09:13:01 +02:00
parent 3283fb9a88
commit 1d2ebeb9a0

View file

@ -1173,9 +1173,15 @@ func (pool *TxPool) runReorg(done chan struct{}, reset *txpoolResetRequest, dirt
// because of another transaction (e.g. higher gas price).
if reset != nil {
pool.demoteUnexecutables()
if reset.newHead != nil && pool.chainconfig.IsLondon(new(big.Int).Add(reset.newHead.Number, big.NewInt(1))) {
pendingBaseFee := misc.CalcBaseFee(pool.chainconfig, reset.newHead)
pool.priced.SetBaseFee(pendingBaseFee)
if reset.newHead != nil {
if pool.chainconfig.IsLondon(new(big.Int).Add(reset.newHead.Number, big.NewInt(1))) {
// london fork enabled, reset given the base fee
pendingBaseFee := misc.CalcBaseFee(pool.chainconfig, reset.newHead)
pool.priced.SetBaseFee(pendingBaseFee)
} else {
// london fork not enabled, reheap to "reset" the priced list
pool.priced.Reheap()
}
}
}
// Ensure pool.queue and pool.pending sizes stay within the configured limits.