mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-11-10 18:25:17 +00:00
fix: infinite loop edge case
This commit is contained in:
parent
f48f177a10
commit
916a1514f1
@ -1091,7 +1091,15 @@ func (e *CeremonyDataClockConsensusEngine) collect(
|
||||
latest = e.previousHead
|
||||
e.syncingStatus = SyncStatusNotSyncing
|
||||
}
|
||||
for {
|
||||
|
||||
// With large networks and slow syncing machines, this can lead to an
|
||||
// infinite loop if the list is refreshing fast enough, so make the size
|
||||
// of the map the maximum loop case:
|
||||
e.peerMapMx.Lock()
|
||||
size := len(e.peerMap)
|
||||
e.peerMapMx.Unlock()
|
||||
|
||||
for i := 0; i < size; i++ {
|
||||
peerId, maxFrame, err := e.GetMostAheadPeer()
|
||||
if err != nil {
|
||||
e.logger.Warn("no peers available, skipping sync")
|
||||
|
Loading…
Reference in New Issue
Block a user