Skip to content

Commit

Permalink
fix race condition on preimage (ethereum#797)
Browse files Browse the repository at this point in the history
  • Loading branch information
unclezoro committed Mar 29, 2022
1 parent 58f3b2c commit 5f1aabe
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion trie/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -722,17 +722,18 @@ func (db *Database) Commit(node common.Hash, report bool, callback func(common.H
batch := db.diskdb.NewBatch()

// Move all of the accumulated preimages into a write batch
db.lock.RLock()
if db.preimages != nil {
rawdb.WritePreimages(batch, db.preimages)
// Since we're going to replay trie node writes into the clean cache, flush out
// any batched pre-images before continuing.
if err := batch.Write(); err != nil {
db.lock.RUnlock()
return err
}
batch.Reset()
}
// Move the trie itself into the batch, flushing if enough data is accumulated
db.lock.RLock()
nodes, storage := len(db.dirties), db.dirtiesSize
db.lock.RUnlock()

Expand Down

0 comments on commit 5f1aabe

Please sign in to comment.