go-ethereum/core/state
rjl493456442 a11b4bebcb
Revert "core/state/snapshot: simplify snapshot rebuild (#30772)" (#30810)
This reverts commit 23800122b3.

The original pull request introduces a bug and some flaky tests are
detected because of this flaw.

```
--- FAIL: TestRecoverSnapshotFromWipingCrash (0.27s)
    blockchain_snapshot_test.go:158: The disk layer is not integrated snapshot is not constructed
{"pc":0,"op":88,"gas":"0x7148","gasCost":"0x2","memSize":0,"stack":[],"depth":1,"refund":0,"opName":"PC"}
{"pc":1,"op":255,"gas":"0x7146","gasCost":"0x1db0","memSize":0,"stack":["0x0"],"depth":1,"refund":0,"opName":"SELFDESTRUCT"}
{"output":"","gasUsed":"0x0"}
{"output":"","gasUsed":"0x1db2"}
{"pc":0,"op":116,"gas":"0x13498","gasCost":"0x3","memSize":0,"stack":[],"depth":1,"refund":0,"opName":"PUSH21"}
```

Before the original PR, the snapshot would block the function until the
disk layer
was fully generated under the following conditions:

(a) explicitly required by users with `AsyncBuild = false`.
(b) the snapshot was being fully rebuilt or *the disk layer generation
had resumed*.

Unfortunately, with the changes introduced in that PR, the snapshot no
longer waits
for disk layer generation to complete if the generation is resumed. It
brings lots of
uncertainty and breaks this tiny debug feature.
2024-11-26 11:33:59 +01:00
..
pruner all: clean up goerli flag and config (#30289) 2024-08-20 15:59:48 +02:00
snapshot Revert "core/state/snapshot: simplify snapshot rebuild (#30772)" (#30810) 2024-11-26 11:33:59 +01:00
access_events.go core, trie: verkle state processor tests (#30672) 2024-11-04 14:19:50 +01:00
access_events_test.go core/state, core/vm: Nyota contract create init simplification (#30409) 2024-09-13 15:37:30 +02:00
access_list.go core/state: rename all the AccessList receivers to 'al' (#29921) 2024-06-11 11:24:44 +03:00
database.go core/state, triedb/database: refactor state reader (#30712) 2024-11-09 08:08:06 +08:00
dump.go eth/tracers: live chain tracing with hooks (#29189) 2024-03-22 18:53:53 +01:00
iterator.go all: fix various typos (#29600) 2024-04-23 13:09:42 +03:00
iterator_test.go core/state: state reader abstraction (#29761) 2024-09-05 13:10:47 +03:00
journal.go core/state: get rid of field pointer in journal (#30361) 2024-09-06 15:42:59 +08:00
metrics.go core: add metrics for state access (#30353) 2024-08-26 20:02:10 +08:00
reader.go core/state, triedb/database: refactor state reader (#30712) 2024-11-09 08:08:06 +08:00
state_object.go core/state: move state log mechanism to a separate layer (#30569) 2024-10-23 08:03:36 +02:00
state_object_test.go build: use golangci-lint (#20295) 2019-11-18 10:49:17 +02:00
state_test.go core/state: move state log mechanism to a separate layer (#30569) 2024-10-23 08:03:36 +02:00
statedb.go core, triedb: remove destruct flag in state snapshot (#30752) 2024-11-22 16:55:43 +08:00
statedb_fuzz_test.go core, triedb: remove destruct flag in state snapshot (#30752) 2024-11-22 16:55:43 +08:00
statedb_hooked.go core/state: invoke OnCodeChange-hook on selfdestruct (#30686) 2024-11-08 15:25:30 +01:00
statedb_hooked_test.go core: fix typos (#30767) 2024-11-19 14:26:39 +08:00
statedb_test.go core, triedb: remove destruct flag in state snapshot (#30752) 2024-11-22 16:55:43 +08:00
stateupdate.go core, triedb: remove destruct flag in state snapshot (#30752) 2024-11-22 16:55:43 +08:00
sync.go core,eth,internal: fix typo (#29024) 2024-02-20 19:42:48 +08:00
sync_test.go core/state: move state log mechanism to a separate layer (#30569) 2024-10-23 08:03:36 +02:00
transient_storage.go core/state: better randomized testing (postcheck) on journalling (#29627) 2024-04-25 09:56:25 +02:00
trie_prefetcher.go core/state: fix runaway alloc caused by prefetcher heap escape (#30629) 2024-10-20 13:25:15 +03:00
trie_prefetcher_test.go core/state: fix runaway alloc caused by prefetcher heap escape (#30629) 2024-10-20 13:25:15 +03:00