eth/downloader: fix unexpected skeleton header deletion
This commit is contained in:
parent
2189773093
commit
686f7438d3
@ -977,8 +977,14 @@ func (s *skeleton) processResponse(res *headerResponse) (linked bool, merged boo
|
|||||||
// the expected new sync cycle after some propagated blocks. Log
|
// the expected new sync cycle after some propagated blocks. Log
|
||||||
// it for debugging purposes, explicitly clean and don't escalate.
|
// it for debugging purposes, explicitly clean and don't escalate.
|
||||||
case subchains == 2 && s.progress.Subchains[1].Head == s.progress.Subchains[1].Tail:
|
case subchains == 2 && s.progress.Subchains[1].Head == s.progress.Subchains[1].Tail:
|
||||||
|
// Remove the leftover skeleton header associated with old
|
||||||
|
// skeleton chain only if it's not covered by the current
|
||||||
|
// skeleton range.
|
||||||
|
if s.progress.Subchains[1].Head < s.progress.Subchains[0].Tail {
|
||||||
log.Debug("Cleaning previous beacon sync state", "head", s.progress.Subchains[1].Head)
|
log.Debug("Cleaning previous beacon sync state", "head", s.progress.Subchains[1].Head)
|
||||||
rawdb.DeleteSkeletonHeader(batch, s.progress.Subchains[1].Head)
|
rawdb.DeleteSkeletonHeader(batch, s.progress.Subchains[1].Head)
|
||||||
|
}
|
||||||
|
// Drop the leftover skeleton chain since it's stale.
|
||||||
s.progress.Subchains = s.progress.Subchains[:1]
|
s.progress.Subchains = s.progress.Subchains[:1]
|
||||||
|
|
||||||
// If we have more than one header or more than one leftover chain,
|
// If we have more than one header or more than one leftover chain,
|
||||||
|
Loading…
Reference in New Issue
Block a user