go-ethereum/core
CPerezz 4cd7b3ba6c
core, eth: disable pathdb snapshot generation for partial state
Geth has two independent snapshot tiers, each with its own disable
mechanism:

1. In-memory snapshot cache: controlled by SnapshotLimit (derived from
   ethconfig.SnapshotCache). Setting SnapshotCache=0 disables it.

2. On-disk snapshot generator: a background goroutine in pathdb that
   iterates the entire state trie to build flat key-value snapshots.
   Controlled by pathdb.Config.SnapshotNoBuild.

The partial state configuration (cmd/utils/flags.go) already set
SnapshotCache=0 to disable the in-memory cache. However, SnapshotNoBuild
was never set, so pathdb.Enable() — called after snap sync completes —
still launched the background generator goroutine.

This generator immediately hits missing storage tries for untracked
contracts (whose storage was intentionally skipped during partial sync),
logs "Trie missing, snapshotting paused", and blocks forever on its
abort channel — a permanent goroutine leak with no recovery path.

Additionally, BlockChainConfig.SnapshotNoBuild was never propagated to
pathdb.Config.SnapshotNoBuild in the triedbConfig() conversion. The
field only reached the hash-scheme snapshot module (core/blockchain.go
setupSnapshot), which is already skipped for path-scheme databases. This
plumbing gap meant pathdb.Config.SnapshotNoBuild was never set in
production code — only in tests.

Fix both issues:
- Set SnapshotNoBuild=true when partial state is enabled
- Propagate BlockChainConfig.SnapshotNoBuild into pathdb.Config
2026-04-17 12:01:43 +02:00
..
filtermaps core/filtermaps: fix operator precedence in delete logging condition (#33280) 2025-12-06 04:21:38 +01:00
forkid params: set osaka and BPO1 & BPO2 mainnet dates (#33063) 2025-11-03 17:41:22 +01:00
history core/history: refactor pruning configuration (#34036) 2026-03-18 13:54:29 +01:00
overlay core/overlay: fix incorrect debug log key/value in LoadTransitionState (#32637) 2025-12-14 21:51:13 +01:00
rawdb eth: add chain retention, BAL engine API support, and bug fixes 2026-04-17 11:55:16 +02:00
state eth: add chain retention, BAL engine API support, and bug fixes 2026-04-17 11:55:16 +02:00
stateless core, miner, trie: relocate witness stats (#34106) 2026-03-27 17:06:46 +01:00
tracing all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
txpool core: implement EIP-8037: state creation gas cost increase 2026-03-31 16:59:35 -04:00
types core/types: fix merging state mutations (EIP-7928) (#34640) 2026-04-07 08:57:43 -04:00
vm core/vm: fix two bugs 2026-04-09 15:05:13 +02:00
.gitignore Renamed chain => core 2014-12-04 10:28:02 +01:00
bench_test.go core: implement EIP-8037: state creation gas cost increase 2026-03-31 16:59:35 -04:00
bintrie_witness_test.go core: implement EIP-8037: state creation gas cost increase 2026-03-31 16:59:35 -04:00
block_validator.go core: perform BAL validation against gas limit for blocks which come with access lists 2026-04-05 15:33:42 -04:00
block_validator_test.go eth/catalyst: add initial OpenTelemetry tracing for newPayload (#33521) 2026-02-17 17:08:57 +01:00
blockchain.go core, eth: disable pathdb snapshot generation for partial state 2026-04-17 12:01:43 +02:00
blockchain_insert.go core: remove unused peek function in insertIterator (#33155) 2025-11-12 15:30:16 +08:00
blockchain_partial.go eth: add chain retention, BAL engine API support, and bug fixes 2026-04-17 11:55:16 +02:00
blockchain_partial_test.go eth: add chain retention, BAL engine API support, and bug fixes 2026-04-17 11:55:16 +02:00
blockchain_reader.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
blockchain_repair_test.go core: consolidate BlockChain constructor options (#31925) 2025-06-19 12:21:15 +02:00
blockchain_sethead_test.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
blockchain_snapshot_test.go triedb/pathdb, eth: use double-buffer mechanism in pathdb (#30464) 2025-06-22 20:40:54 +08:00
blockchain_stats.go all: fix rebasing issues 2026-03-31 17:56:41 -04:00
blockchain_test.go fix some lint errors (TODO: merge this commit into the 7928 changes 2026-03-31 17:49:53 -04:00
chain_makers.go all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
chain_makers_test.go core: consolidate BlockChain constructor options (#31925) 2025-06-19 12:21:15 +02:00
dao_test.go core: consolidate BlockChain constructor options (#31925) 2025-06-19 12:21:15 +02:00
error.go core, internal/ethapi: fix incorrect max-initcode RPC error mapping (#34067) 2026-03-23 22:10:32 +08:00
eth_transfer_logs_test.go core, core/vm: implement EIP-7708 (#33645) 2026-03-23 22:29:53 +08:00
events.go ethstats: report newPayload processing time to stats server (#33395) 2026-01-05 17:49:30 +01:00
evm.go core: implement EIP-8037: state creation gas cost increase 2026-03-31 16:59:35 -04:00
gaspool.go core: fix tx-inclusion tests 2026-04-08 12:44:39 +02:00
gen_genesis.go all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
genesis.go all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
genesis_alloc.go params: add hoodi testnet definition (#31406) 2025-03-18 12:07:49 +01:00
genesis_test.go trie/bintrie: fix overflow management in slot key computation (#33951) 2026-03-05 14:43:31 +01:00
headerchain.go core/rawdb: reduce allocations in rawdb.ReadHeaderNumber (#31913) 2025-07-15 15:48:36 +02:00
headerchain_test.go core/state, core/tracing: new state update hook (#33490) 2026-01-08 11:07:19 +08:00
mkalloc.go accounts, cmd/geth, core: close opened files (#29598) 2024-04-30 15:47:21 +02:00
parallel_state_processor.go core: preface invalid bal errors so they are caught by the exception mapper 2026-04-05 18:14:18 -04:00
rlp_test.go crypto/keccak: vendor in golang.org/x/crypto/sha3 (#33323) 2026-02-03 14:55:27 -07:00
sender_cacher.go core: use sync.Once for SenderCacher initialization (#31029) 2025-01-16 14:36:45 +01:00
state_prefetcher.go core: implement eip-7778: block gas accounting without refunds (#33593) 2026-03-04 18:18:18 +08:00
state_processor.go core: fix rebasing issue 2026-04-08 16:19:24 +02:00
state_processor_test.go core: implement EIP-8037: state creation gas cost increase 2026-03-31 16:59:35 -04:00
state_transition.go core: fix 8037 transaction inclusion 2026-04-09 15:19:26 +02:00
stateless.go all: implement eip 7928 block access lists 2026-03-31 17:49:49 -04:00
txindexer.go core/rawdb: reduce allocations in rawdb.ReadHeaderNumber (#31913) 2025-07-15 15:48:36 +02:00
txindexer_test.go core/rawdb: integrate eradb backend for RPC (#31604) 2025-06-03 10:47:38 +02:00
types.go all: fix rebasing issues 2026-03-31 17:56:41 -04:00