Skip to content

Commit

Permalink
fix race condition on preimage (#797)
Browse files Browse the repository at this point in the history
  • Loading branch information
unclezoro authored Mar 28, 2022
1 parent 9d5062d commit 2853198
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 2853198

Please sign in to comment.