fix(timesync): queryMultipleHttp hanging if all servers are unreachable (#605)

This commit is contained in:
Aveline 2025-06-13 00:49:26 +02:00 committed by Siyuan Miao
parent 08450cb04c
commit b73741c874
1 changed files with 12 additions and 1 deletions

View File

@ -95,16 +95,27 @@ func (t *TimeSync) queryMultipleHttp(urls []string, timeout time.Duration) (now
} else if errors.Is(err, context.Canceled) {
metricHttpCancelCount.WithLabelValues(url).Inc()
metricHttpTotalCancelCount.Inc()
results <- nil
} else {
scopedLogger.Warn().
Str("error", err.Error()).
Int("status", status).
Msg("failed to query HTTP server")
results <- nil
}
}(url)
}
return <-results
for range urls {
result := <-results
if result == nil {
continue
}
now = result
return
}
return
}
func queryHttpTime(