[ARVADOS] created: 879ba08f9cba098577e520235bfbbbeffaf4b81d
    git at public.curoverse.com 
    git at public.curoverse.com
       
    Mon Mar 23 13:50:28 EDT 2015
    
    
  
        at  879ba08f9cba098577e520235bfbbbeffaf4b81d (commit)
commit 879ba08f9cba098577e520235bfbbbeffaf4b81d
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Mon Mar 23 13:54:07 2015 -0400
    5536: Keepproxy retry keep server discovery on error or empty list.
diff --git a/services/keepproxy/keepproxy.go b/services/keepproxy/keepproxy.go
index b8c30d1..581f7f4 100644
--- a/services/keepproxy/keepproxy.go
+++ b/services/keepproxy/keepproxy.go
@@ -134,16 +134,27 @@ type ApiTokenCache struct {
 
 // Refresh the keep service list every five minutes.
 func RefreshServicesList(kc *keepclient.KeepClient) {
+	var sleeptime time.Duration
 	for {
-		time.Sleep(300 * time.Second)
 		oldservices := kc.ServiceRoots()
-		kc.DiscoverKeepServers()
-		newservices := kc.ServiceRoots()
-		s1 := fmt.Sprint(oldservices)
-		s2 := fmt.Sprint(newservices)
-		if s1 != s2 {
-			log.Printf("Updated server list to %v", s2)
+		newservices, err := kc.DiscoverKeepServers()
+		if err == nil && len(newservices) > 0 {
+			s1 := fmt.Sprint(oldservices)
+			s2 := fmt.Sprint(newservices)
+			if s1 != s2 {
+				log.Printf("Updated server list to %v", s2)
+			}
+			sleeptime = 300 * time.Second
+		} else {
+			// There was an error, or the list is empty, so wait 3 seconds and try again.
+			if err != nil {
+				log.Printf("Error retrieving server list: %v", err)
+			} else {
+				log.Printf("Retrieved an empty server list")
+			}
+			sleeptime = 3 * time.Second
 		}
+		time.Sleep(sleeptime)
 	}
 }
 
-----------------------------------------------------------------------
hooks/post-receive
-- 
    
    
More information about the arvados-commits
mailing list