trie: remove inconsistent trie nodes during sync in path mode (#28595)
This fixes a database corruption issue that could occur during state healing. When sync is aborted while certain modifications were already committed, and a reorg occurs, the database would contain incorrect trie nodes stored by path. These nodes need to detected/deleted in order to obtain a complete and fully correct state after state healing. --------- Co-authored-by: Felix Lange <fjl@twurst.com>
This commit is contained in:
co-authored by
Felix Lange
parent
d98d70f670
commit
e206d3f897
@@ -273,9 +273,13 @@ func TestDatabaseSuite(t *testing.T, New func() ethdb.KeyValueStore) {
|
||||
b.Put([]byte("5"), nil)
|
||||
b.Delete([]byte("1"))
|
||||
b.Put([]byte("6"), nil)
|
||||
b.Delete([]byte("3"))
|
||||
|
||||
b.Delete([]byte("3")) // delete then put
|
||||
b.Put([]byte("3"), nil)
|
||||
|
||||
b.Put([]byte("7"), nil) // put then delete
|
||||
b.Delete([]byte("7"))
|
||||
|
||||
if err := b.Write(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user