Skip to content

Commit 1987151

Browse files
authored
fix(timesync): queryMultipleHttp hanging if all servers are unreachable (#605)
1 parent b822b73 commit 1987151

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

internal/timesync/http.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,27 @@ func (t *TimeSync) queryMultipleHttp(urls []string, timeout time.Duration) (now
9595
} else if errors.Is(err, context.Canceled) {
9696
metricHttpCancelCount.WithLabelValues(url).Inc()
9797
metricHttpTotalCancelCount.Inc()
98+
results <- nil
9899
} else {
99100
scopedLogger.Warn().
100101
Str("error", err.Error()).
101102
Int("status", status).
102103
Msg("failed to query HTTP server")
104+
results <- nil
103105
}
104106
}(url)
105107
}
106108

107-
return <-results
109+
for range urls {
110+
result := <-results
111+
if result == nil {
112+
continue
113+
}
114+
now = result
115+
return
116+
}
117+
118+
return
108119
}
109120

110121
func queryHttpTime(

0 commit comments

Comments
 (0)