X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/005951a5e62a55894eace6e8fb3fe91d5c4ba84c..6d95130da47af9fd0290d3c8f80a0364faf74957:/sdk/go/keepclient/discover.go diff --git a/sdk/go/keepclient/discover.go b/sdk/go/keepclient/discover.go index 2392fcde7b..744ff82685 100644 --- a/sdk/go/keepclient/discover.go +++ b/sdk/go/keepclient/discover.go @@ -6,6 +6,7 @@ package keepclient import ( "encoding/json" + "errors" "fmt" "log" "os" @@ -15,7 +16,7 @@ import ( "syscall" "time" - "git.curoverse.com/arvados.git/sdk/go/arvadosclient" + "git.arvados.org/arvados.git/sdk/go/arvadosclient" ) // ClearCache clears the Keep service discovery cache. @@ -26,8 +27,9 @@ func RefreshServiceDiscovery() { defer svcListCacheMtx.Unlock() for _, ent := range svcListCache { wg.Add(1) + clear := ent.clear go func() { - ent.clear <- struct{}{} + clear <- struct{}{} wg.Done() }() } @@ -150,7 +152,12 @@ func (kc *KeepClient) discoverServices() error { } svcListCacheMtx.Unlock() - return kc.loadKeepServers(<-cacheEnt.latest) + select { + case <-time.After(time.Minute): + return errors.New("timed out while getting initial list of keep services") + case sl := <-cacheEnt.latest: + return kc.loadKeepServers(sl) + } } func (kc *KeepClient) RefreshServiceDiscovery() {