From 585fc9455e07ca094700cb6826437d49bc7b9dfe Mon Sep 17 00:00:00 2001 From: Sina Mahmoodi Date: Tue, 3 Jun 2025 12:49:58 +0200 Subject: [PATCH] debug missing receipt --- core/rawdb/accessors_chain.go | 3 +++ eth/downloader/downloader.go | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/core/rawdb/accessors_chain.go b/core/rawdb/accessors_chain.go index 2386246caf..008ecc438b 100644 --- a/core/rawdb/accessors_chain.go +++ b/core/rawdb/accessors_chain.go @@ -623,6 +623,9 @@ func WriteReceipts(db ethdb.KeyValueWriter, hash common.Hash, number uint64, rec // WriteRawReceipts stores all the transaction receipts belonging to a block. func WriteRawReceipts(db ethdb.KeyValueWriter, hash common.Hash, number uint64, receipts rlp.RawValue) { + if len(receipts) == 0 { + panic("empty receipts in snap sync block") + } // Store the flattened receipt slice if err := db.Put(blockReceiptsKey(number, hash), receipts); err != nil { log.Crit("Failed to store block receipts", "err", err) diff --git a/eth/downloader/downloader.go b/eth/downloader/downloader.go index 762fb9283e..74975f79fc 100644 --- a/eth/downloader/downloader.go +++ b/eth/downloader/downloader.go @@ -1039,7 +1039,11 @@ func (d *Downloader) commitSnapSyncData(results []*fetchResult, stateSync *state for i, result := range results { blocks[i] = types.NewBlockWithHeader(result.Header).WithBody(result.body()) receipts[i] = result.Receipts + if len(result.Receipts) == 0 { + panic("empty receipts in snap sync block") + } } + fmt.Printf(">>>> Committing %d snap-sync blocks, first %d, last %d\n", len(results), first.Number.Uint64(), last.Number.Uint64()) if index, err := d.blockchain.InsertReceiptChain(blocks, receipts, d.ancientLimit); err != nil { log.Debug("Downloaded item processing failed", "number", results[index].Header.Number, "hash", results[index].Header.Hash(), "err", err) return fmt.Errorf("%w: %v", errInvalidChain, err)