eth/protocols/snap: fix batch writer when resuming an aborted sync (#27842)

This commit is contained in:
Péter Szilágyi 2023-08-03 14:51:02 +03:00 committed by GitHub
parent 8224bb9218
commit 6e934f40f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -730,6 +730,8 @@ func (s *Syncer) loadSyncStatus() {
} }
s.tasks = progress.Tasks s.tasks = progress.Tasks
for _, task := range s.tasks { for _, task := range s.tasks {
task := task // closure for task.genBatch in the stacktrie writer callback
task.genBatch = ethdb.HookedBatch{ task.genBatch = ethdb.HookedBatch{
Batch: s.db.NewBatch(), Batch: s.db.NewBatch(),
OnPut: func(key []byte, value []byte) { OnPut: func(key []byte, value []byte) {
@ -741,6 +743,8 @@ func (s *Syncer) loadSyncStatus() {
}) })
for accountHash, subtasks := range task.SubTasks { for accountHash, subtasks := range task.SubTasks {
for _, subtask := range subtasks { for _, subtask := range subtasks {
subtask := subtask // closure for subtask.genBatch in the stacktrie writer callback
subtask.genBatch = ethdb.HookedBatch{ subtask.genBatch = ethdb.HookedBatch{
Batch: s.db.NewBatch(), Batch: s.db.NewBatch(),
OnPut: func(key []byte, value []byte) { OnPut: func(key []byte, value []byte) {