agent/consul: change provider wait from goto to a loop

This commit is contained in:
Mitchell Hashimoto 2018-05-08 21:32:47 -07:00
parent c8b65217c3
commit bc605a1576
No known key found for this signature in database
GPG Key ID: 744E147AA52F5B0A

View File

@ -489,10 +489,10 @@ func (s *Server) createCAProvider(conf *structs.CAConfiguration) (connect.CAProv
func (s *Server) getCAProvider() connect.CAProvider { func (s *Server) getCAProvider() connect.CAProvider {
retries := 0 retries := 0
var result connect.CAProvider
RETRY_PROVIDER: for result == nil {
s.caProviderLock.RLock() s.caProviderLock.RLock()
result := s.caProvider result = s.caProvider
s.caProviderLock.RUnlock() s.caProviderLock.RUnlock()
// In cases where an agent is started with managed proxies, we may ask // In cases where an agent is started with managed proxies, we may ask
@ -501,7 +501,10 @@ RETRY_PROVIDER:
if result == nil && s.IsLeader() && retries < 10 { if result == nil && s.IsLeader() && retries < 10 {
retries++ retries++
time.Sleep(50 * time.Millisecond) time.Sleep(50 * time.Millisecond)
goto RETRY_PROVIDER continue
}
break
} }
return result return result