• rjl493456442's avatar
    core/rawdb: fsync head data file before closing it (#26490) · e04d63eb
    rjl493456442 authored
    This PR fixes an issue which might result in data lost in freezer.
    
    Whenever mutation happens in freezer, all data will be written into head data file
    and it will be rotated with a new one in case the size of file reaches the threshold.
    
    Theoretically, the rotated old data file should be fsync'd to prevent data loss.
    In freezer.Sync function, we only fsync: (1) index file (2) meta file and (3) head
    data file. So this PR forcibly fsync the head data file if mutation happens in the
    boundary of data file.
    e04d63eb
Name
Last commit
Last update
..
asm Loading commit data...
beacon Loading commit data...
bloombits Loading commit data...
forkid Loading commit data...
rawdb Loading commit data...
state Loading commit data...
txpool Loading commit data...
types Loading commit data...
vm Loading commit data...
.gitignore Loading commit data...
bench_test.go Loading commit data...
block_validator.go Loading commit data...
block_validator_test.go Loading commit data...
blockchain.go Loading commit data...
blockchain_insert.go Loading commit data...
blockchain_reader.go Loading commit data...
blockchain_repair_test.go Loading commit data...
blockchain_sethead_test.go Loading commit data...
blockchain_snapshot_test.go Loading commit data...
blockchain_test.go Loading commit data...
blocks.go Loading commit data...
bloom_indexer.go Loading commit data...
chain_indexer.go Loading commit data...
chain_indexer_test.go Loading commit data...
chain_makers.go Loading commit data...
chain_makers_test.go Loading commit data...
dao_test.go Loading commit data...
error.go Loading commit data...
events.go Loading commit data...
evm.go Loading commit data...
forkchoice.go Loading commit data...
gaspool.go Loading commit data...
gen_genesis.go Loading commit data...
gen_genesis_account.go Loading commit data...
genesis.go Loading commit data...
genesis_alloc.go Loading commit data...
genesis_test.go Loading commit data...
headerchain.go Loading commit data...
headerchain_test.go Loading commit data...
mkalloc.go Loading commit data...
rlp_test.go Loading commit data...
sender_cacher.go Loading commit data...
state_prefetcher.go Loading commit data...
state_processor.go Loading commit data...
state_processor_test.go Loading commit data...
state_transition.go Loading commit data...
types.go Loading commit data...