From 66f0c464ccd431e94b3be2a91b58c084c2c1575d Mon Sep 17 00:00:00 2001 From: silence Date: Thu, 17 Jan 2019 23:49:12 +0800 Subject: [PATCH] core: only cache non-nil receipts from the database (#18447) receipts may be null for very short time in some condition. For this case, we should not add the null value into cache. Because you will not get the right result if you keep requesting that receipt. --- core/blockchain.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/blockchain.go b/core/blockchain.go index c719883ee53a..156efe303a88 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -644,6 +644,9 @@ func (bc *BlockChain) GetReceiptsByHash(hash common.Hash) types.Receipts { return nil } receipts := rawdb.ReadReceipts(bc.db, hash, *number) + if receipts == nil { + return nil + } bc.receiptsCache.Add(hash, receipts) return receipts }