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 Renamed `chain` => `core` 2014-12-04 10:28:02 +01:00
bench_test.go EIP-1559: miner changes (#22896) 2021-05-21 09:59:26 +02:00
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 core: fix blockchain insert report time interval calculation (#21723) 2020-10-21 16:53:30 +02:00
blockchain_repair_test.go accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2021-06-15 13:56:14 +03:00
blockchain_sethead_test.go accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2021-06-15 13:56:14 +03:00
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 core: typos and comments improve 2017-05-25 17:14:33 +03:00
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 accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2021-06-15 13:56:14 +03:00
error.go core/rawdb: freezer batch write (#23462) 2021-09-07 12:31:17 +02:00
events.go eth/filters: remove use of event.TypeMux for pending logs (#20312) 2019-12-10 12:39:14 +01:00
evm.go all: implement EIP-1559 (#22837) 2021-05-17 15:13:22 +02:00
gaspool.go miner: avoid unnecessary work (#15883) 2018-01-15 12:57:06 +02:00
gen_genesis.go core: change baseFee into baseFeePerGas in genesis json 2021-06-14 14:04:44 +02:00
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 accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2021-06-15 13:56:14 +03:00
mkalloc.go all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
rlp_test.go accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2021-06-15 13:56:14 +03:00
state_prefetcher.go all: removed blockhash from statedb (#23126) 2021-06-30 15:17:01 +02:00
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 Comment error (#18303) 2018-12-14 11:15:31 +01:00
tx_journal.go core: transaction journal should not be executable (#23090) 2021-06-23 07:29:20 +03:00
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 Revert "core, txpool: less allocations when handling transactions (#21232)" 2020-07-09 14:02:03 +02:00
tx_noncer.go core: fix write concurrency in txpool (#19835) 2019-07-17 13:39:41 +03:00
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 core: prefetch next block state concurrently 2019-04-01 11:06:15 +03:00