core: reset txlookup cache if reorg happens

This commit is contained in:
Gary Rong 2024-01-29 14:34:53 +08:00
parent 7b97c59f2f
commit 064315d6b3

View file

@ -2209,10 +2209,9 @@ func (bc *BlockChain) reorg(oldHead *types.Header, newHead *types.Block) error {
for _, tx := range diffs { for _, tx := range diffs {
rawdb.DeleteTxLookupEntry(indexesBatch, tx) rawdb.DeleteTxLookupEntry(indexesBatch, tx)
} }
// Reset the tx lookup cache in case some indexes are removed. // Reset the tx lookup cache in case to clear stale txlookups.
if len(diffs) > 0 { bc.txLookupCache.Purge()
bc.txLookupCache.Purge()
}
// Delete all hash markers that are not part of the new canonical chain. // Delete all hash markers that are not part of the new canonical chain.
// Because the reorg function does not handle new chain head, all hash // Because the reorg function does not handle new chain head, all hash
// markers greater than or equal to new chain head should be deleted. // markers greater than or equal to new chain head should be deleted.