go-ethereum/core
Martin Holst Swende edb1937cf7
core: improve shutdown synchronization in BlockChain (#22853)
This change removes misuses of sync.WaitGroup in BlockChain. Before this change,
block insertion modified the WaitGroup counter in order to ensure that Stop would wait
for pending operations to complete. This was racy and could even lead to crashes
if Stop was called at an unfortunate time. The issue is resolved by adding a specialized
'closable' mutex, which prevents chain modifications after stopping while also
synchronizing writers with each other.

Co-authored-by: Felix Lange <fjl@twurst.com>
2021-10-07 15:47:50 +02:00
..
asm core/asm: fix the bug of "00" prefix number (#22883) 2021-05-18 10:22:58 +02:00
bloombits core/bloombits: avoid crash when storing errors of different type (#23437) 2021-08-24 13:32:19 +02:00
forkid core, params: define london block at 12965000 (#23176) 2021-07-08 12:34:56 +03:00
rawdb core/rawdb: avoid unnecessary receipt processing for log filtering (#23147) 2021-09-28 12:54:49 +02:00
state core/state: fix typo in comment (#23665) 2021-10-04 12:16:50 +02:00
types core/types: copy tx recipient address (#23376) 2021-10-06 13:12:52 +02:00
vm core,eth: call frame tracing (#23087) 2021-09-17 09:31:22 +02:00
.gitignore
bench_test.go
block_validator.go cmd, core, eth, miner: deprecate miner.gastarget flag (#23213) 2021-08-10 11:28:33 +03:00
block_validator_test.go cmd, core, eth, miner: deprecate miner.gastarget flag (#23213) 2021-08-10 11:28:33 +03:00
blockchain.go core: improve shutdown synchronization in BlockChain (#22853) 2021-10-07 15:47:50 +02:00
blockchain_insert.go
blockchain_repair_test.go
blockchain_sethead_test.go
blockchain_snapshot_test.go core: fix typo in comment (#23658) 2021-09-29 21:28:47 +02:00
blockchain_test.go core: improve shutdown synchronization in BlockChain (#22853) 2021-10-07 15:47:50 +02:00
blocks.go
bloom_indexer.go eth: move eth.Config to a common package (#22205) 2021-02-05 13:51:15 +01:00
chain_indexer.go all: make logs a bit easier on the eye to digest (#22665) 2021-04-15 20:35:00 +03:00
chain_indexer_test.go core: fix potential race in chainIndexerTest (#22346) 2021-03-19 13:32:57 +01:00
chain_makers.go cmd, core, eth, miner: deprecate miner.gastarget flag (#23213) 2021-08-10 11:28:33 +03:00
chain_makers_test.go cmd, core, eth: background transaction indexing (#20302) 2020-05-11 18:58:43 +03:00
dao_test.go
error.go core/rawdb: freezer batch write (#23462) 2021-09-07 12:31:17 +02:00
events.go
evm.go
gaspool.go miner: avoid unnecessary work (#15883) 2018-01-15 12:57:06 +02:00
gen_genesis.go
gen_genesis_account.go tests: update for London (#22976) 2021-06-07 14:37:56 +02:00
genesis.go consensus/clique: prevent 0 len extradata from panicing (#23538) 2021-09-21 10:46:08 +02:00
genesis_alloc.go cmd/geth, core, params: replace baikal with calaveras (#22972) 2021-05-31 10:06:48 +03:00
genesis_test.go consensus/clique: prevent 0 len extradata from panicing (#23538) 2021-09-21 10:46:08 +02:00
headerchain.go all: change blacklist terms 2021-07-29 11:17:40 +03:00
headerchain_test.go
mkalloc.go all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
rlp_test.go
state_prefetcher.go
state_processor.go all: removed blockhash from statedb (#23126) 2021-06-30 15:17:01 +02:00
state_processor_test.go core: check if sender is EOA (#23303) 2021-08-07 19:38:18 +02:00
state_transition.go core: only check sendernoeoa in non fake mode (#23424) 2021-08-23 12:49:39 +03:00
tx_cacher.go
tx_journal.go
tx_list.go core: make txPricedList.stales the first field for 64bit alignment (#23542) 2021-09-07 17:15:11 +03:00
tx_list_test.go
tx_noncer.go
tx_pool.go core: fix race conditions in txpool (#23474) 2021-08-31 10:33:39 +02:00
tx_pool_test.go core: 64bit alignment of testBlockChain.gasLimit (#23543) 2021-09-07 18:54:15 +03:00
types.go