mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-23 13:16:42 +00:00
fix: add snapshot root
This commit is contained in:
parent
fa1970fba7
commit
64cfce5b5d
1 changed files with 21 additions and 6 deletions
|
|
@ -347,8 +347,21 @@ wait:
|
|||
var (
|
||||
updates = make(map[common.Hash]*stateUpdate)
|
||||
children = make(map[common.Hash][]common.Hash)
|
||||
done = make(chan buildResult)
|
||||
done chan buildResult
|
||||
)
|
||||
|
||||
// Add snapshot root to updates map when snapshot completes
|
||||
if root := rawdb.ReadSnapshotRoot(t.db); root != (common.Hash{}) {
|
||||
var number uint64
|
||||
if recoveryNumber := rawdb.ReadSnapshotRecoveryNumber(t.db); recoveryNumber != nil {
|
||||
number = *recoveryNumber
|
||||
}
|
||||
updates[root] = &stateUpdate{
|
||||
root: root,
|
||||
blockNumber: number,
|
||||
}
|
||||
}
|
||||
|
||||
for {
|
||||
select {
|
||||
case u := <-t.updateCh:
|
||||
|
|
@ -356,6 +369,10 @@ wait:
|
|||
children[u.originRoot] = append(children[u.originRoot], u.root)
|
||||
|
||||
case <-ticker.C:
|
||||
// Only check timer if build hasn't started yet
|
||||
if done != nil {
|
||||
continue
|
||||
}
|
||||
root := rawdb.ReadSnapshotRoot(t.db)
|
||||
if root == (common.Hash{}) {
|
||||
continue
|
||||
|
|
@ -364,11 +381,9 @@ wait:
|
|||
if !exists {
|
||||
continue
|
||||
}
|
||||
if done == nil {
|
||||
done = make(chan buildResult)
|
||||
go t.build(entry.root, entry.blockNumber, done)
|
||||
log.Info("Measuring persistent state size", "root", root, "number", entry.blockNumber)
|
||||
}
|
||||
done = make(chan buildResult)
|
||||
go t.build(entry.root, entry.blockNumber, done)
|
||||
log.Info("Measuring persistent state size", "root", root, "number", entry.blockNumber)
|
||||
|
||||
case result := <-done:
|
||||
if result.err != nil {
|
||||
|
|
|
|||
Loading…
Reference in a new issue