15652: Eliminate a malloc when writing a one-segment block.
[arvados.git] / sdk / go / keepclient / discover.go
index 2392fcde7bdc7475068bfac3452665daa2ef5a61..62936e71831fb1fa055b213fac470f2adeb5ea16 100644 (file)
@@ -6,6 +6,7 @@ package keepclient
 
 import (
        "encoding/json"
+       "errors"
        "fmt"
        "log"
        "os"
@@ -150,7 +151,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() {