mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
Revert "eth/downloader: drop beacon head updates if the syncer is restarting (#27397)"
This reverts commit 0968b3d498.
This commit is contained in:
parent
cbd9ba5c6f
commit
5422e21986
1 changed files with 7 additions and 25 deletions
|
|
@ -367,13 +367,6 @@ func (s *skeleton) sync(head *types.Header) (*types.Header, error) {
|
||||||
s.filler.resume()
|
s.filler.resume()
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
// The filler needs to be suspended, but since it can block for a while
|
|
||||||
// when there are many blocks queued up for full-sync importing, run it
|
|
||||||
// on a separate goroutine and consume head messages that need instant
|
|
||||||
// replies.
|
|
||||||
done := make(chan struct{})
|
|
||||||
go func() {
|
|
||||||
defer close(done)
|
|
||||||
if filled := s.filler.suspend(); filled != nil {
|
if filled := s.filler.suspend(); filled != nil {
|
||||||
// If something was filled, try to delete stale sync helpers. If
|
// If something was filled, try to delete stale sync helpers. If
|
||||||
// unsuccessful, warn the user, but not much else we can do (it's
|
// unsuccessful, warn the user, but not much else we can do (it's
|
||||||
|
|
@ -384,17 +377,6 @@ func (s *skeleton) sync(head *types.Header) (*types.Header, error) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
// Wait for the suspend to finish, consuming head events in the meantime
|
|
||||||
// and dropping them on the floor.
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case <-done:
|
|
||||||
return
|
|
||||||
case event := <-s.headEvents:
|
|
||||||
event.errc <- errors.New("beacon syncer reorging")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
// Create a set of unique channels for this sync cycle. We need these to be
|
// Create a set of unique channels for this sync cycle. We need these to be
|
||||||
// ephemeral so a data race doesn't accidentally deliver something stale on
|
// ephemeral so a data race doesn't accidentally deliver something stale on
|
||||||
// a persistent channel across syncs (yup, this happened)
|
// a persistent channel across syncs (yup, this happened)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue