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_test.go cmd, core, eth, miner: deprecate miner.gastarget flag (#23213) 2021-08-10 11:28:33 +03:00
block_validator.go cmd, core, eth, miner: deprecate miner.gastarget flag (#23213) 2021-08-10 11:28:33 +03: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
blockchain.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_test.go core: fix potential race in chainIndexerTest (#22346) 2021-03-19 13:32:57 +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_makers_test.go cmd, core, eth: background transaction indexing (#20302) 2020-05-11 18:58:43 +03:00
chain_makers.go cmd, core, eth, miner: deprecate miner.gastarget flag (#23213) 2021-08-10 11:28:33 +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_account.go tests: update for London (#22976) 2021-06-07 14:37:56 +02:00
gen_genesis.go core: change baseFee into baseFeePerGas in genesis json 2021-06-14 14:04:44 +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
genesis.go consensus/clique: prevent 0 len extradata from panicing (#23538) 2021-09-21 10:46:08 +02:00
headerchain_test.go accounts/abi/bind: fix bounded contracts and sim backend for 1559 (#23038) 2021-06-15 13:56:14 +03:00
headerchain.go all: change blacklist terms 2021-07-29 11:17:40 +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_test.go core: check if sender is EOA (#23303) 2021-08-07 19:38:18 +02:00
state_processor.go all: removed blockhash from statedb (#23126) 2021-06-30 15:17:01 +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_test.go Revert "core, txpool: less allocations when handling transactions (#21232)" 2020-07-09 14:02:03 +02:00
tx_list.go core: make txPricedList.stales the first field for 64bit alignment (#23542) 2021-09-07 17:15:11 +03:00
tx_noncer.go core: fix write concurrency in txpool (#19835) 2019-07-17 13:39:41 +03:00
tx_pool_test.go core: 64bit alignment of testBlockChain.gasLimit (#23543) 2021-09-07 18:54:15 +03:00
tx_pool.go core: fix race conditions in txpool (#23474) 2021-08-31 10:33:39 +02:00
types.go core: prefetch next block state concurrently 2019-04-01 11:06:15 +03:00