[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