fix bug in sync package

This commit is contained in:
maskpp 2025-08-03 12:04:58 +08:00
parent 5572f2ed22
commit ca2c187844

View file

@ -120,7 +120,12 @@ func (s *Syncer) run() {
continue continue
} }
if target != nil && header.Number.Cmp(target.Number) <= 0 { if target != nil && header.Number.Cmp(target.Number) <= 0 {
req.errc <- fmt.Errorf("stale sync target, current: %d, received: %d", target.Number, header.Number) // If the remote number is equal to the target, we don't need to resync.
if header.Number == target.Number {
req.errc <- nil
} else {
req.errc <- fmt.Errorf("stale sync target, current: %d, received: %d", target.Number, header.Number)
}
break break
} }
target = header target = header
@ -137,7 +142,7 @@ func (s *Syncer) run() {
} }
if block := s.backend.BlockChain().GetBlockByHash(target.Hash()); block != nil { if block := s.backend.BlockChain().GetBlockByHash(target.Hash()); block != nil {
log.Info("Sync target reached", "number", block.NumberU64(), "hash", block.Hash()) log.Info("Sync target reached", "number", block.NumberU64(), "hash", block.Hash())
go s.stack.Close() // async since we need to close ourselves go s.Stop() // async since we need to close ourselves
return return
} }