[ARVADOS] updated: 51698227fada4c2236de5aa85a4c42bda00c8b94

git at public.curoverse.com git at public.curoverse.com
Mon Jan 5 10:16:13 EST 2015


Summary of changes:
 sdk/go/keepclient/keepclient.go | 20 ++---------
 sdk/go/keepclient/support.go    | 73 ++++++++++++++++++++++++++++++-----------
 2 files changed, 55 insertions(+), 38 deletions(-)

       via  51698227fada4c2236de5aa85a4c42bda00c8b94 (commit)
      from  6e307516327390389ab265560cfb0693a4582210 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 51698227fada4c2236de5aa85a4c42bda00c8b94
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Mon Jan 5 10:17:42 2015 -0500

    4869: Client.Timeout and Client.Transport are now correctly set in
    DiscoverKeepServers().  Improved comments.

diff --git a/sdk/go/keepclient/keepclient.go b/sdk/go/keepclient/keepclient.go
index dbc2466..23af470 100644
--- a/sdk/go/keepclient/keepclient.go
+++ b/sdk/go/keepclient/keepclient.go
@@ -10,7 +10,6 @@ import (
 	"io"
 	"io/ioutil"
 	"log"
-	"net"
 	"net/http"
 	"regexp"
 	"strings"
@@ -49,23 +48,8 @@ func MakeKeepClient(arv *arvadosclient.ArvadosClient) (kc KeepClient, err error)
 		Arvados:       arv,
 		Want_replicas: 2,
 		Using_proxy:   false,
-		Client: &http.Client{
-			// The maximum duration of the connection, will be
-			// closed if exceeded.
-			Timeout: 5 * time.Minute,
-			Transport: &http.Transport{
-				Dial: (&net.Dialer{
-					// The maximum time to wait to set up
-					// the initial TCP connection.
-					Timeout: 60 * time.Second,
-
-					// The TCP keep alive heartbeat
-					// interval.
-					KeepAlive: 60 * time.Second,
-				}).Dial,
-				TLSHandshakeTimeout: 10 * time.Second,
-			}}}
-
+		Client:        &http.Client{},
+	}
 	err = (&kc).DiscoverKeepServers()
 
 	return kc, err
diff --git a/sdk/go/keepclient/support.go b/sdk/go/keepclient/support.go
index a2787c5..c24849e 100644
--- a/sdk/go/keepclient/support.go
+++ b/sdk/go/keepclient/support.go
@@ -28,36 +28,63 @@ func Md5String(s string) string {
 	return fmt.Sprintf("%x", md5.Sum([]byte(s)))
 }
 
-func (this *KeepClient) DiscoverKeepServers() error {
-	if prx := os.Getenv("ARVADOS_KEEP_PROXY"); prx != "" {
-		sr := map[string]string{"proxy": prx}
-		this.SetServiceRoots(sr)
-		this.Using_proxy = true
-		if this.Client.Timeout == 0 {
-			// See MakeKeepClient for notes on meaning of timeouts.
-			this.Client.Timeout = 300 * time.Second
-			this.Client.Transport = &http.Transport{
-				Dial: (&net.Dialer{
-					Timeout:   30 * time.Second,
-					KeepAlive: 60 * time.Second,
-				}).Dial,
-				TLSHandshakeTimeout: 10 * time.Second,
-			}
+// Set timeouts apply when connecting to keepproxy services (assumed to be over
+// the Internet).
+func (this *KeepClient) setClientSettingsProxy() {
+	if this.Client.Timeout == 0 {
+		// Maximum time to wait for a complete response
+		this.Client.Timeout = 300 * time.Second
+
+		// TCP and TLS connection settings
+		this.Client.Transport = &http.Transport{
+			Dial: (&net.Dialer{
+				// The maximum time to wait to set up
+				// the initial TCP connection.
+				Timeout: 30 * time.Second,
+
+				// The TCP keep alive heartbeat
+				// interval.
+				KeepAlive: 120 * time.Second,
+			}).Dial,
+
+			TLSHandshakeTimeout: 10 * time.Second,
 		}
-		return nil
 	}
 
+}
+
+// Set timeouts apply when connecting to keepstore services directly (assumed
+// to be on the local network).
+func (this *KeepClient) setClientSettingsStore() {
 	if this.Client.Timeout == 0 {
-		// See MakeKeepClient for notes on meaning of timeouts.
+		// Maximum time to wait for a complete response
 		this.Client.Timeout = 20 * time.Second
+
+		// TCP and TLS connection timeouts
 		this.Client.Transport = &http.Transport{
 			Dial: (&net.Dialer{
-				Timeout:   2 * time.Second,
-				KeepAlive: 60 * time.Second,
+				// The maximum time to wait to set up
+				// the initial TCP connection.
+				Timeout: 2 * time.Second,
+
+				// The TCP keep alive heartbeat
+				// interval.
+				KeepAlive: 180 * time.Second,
 			}).Dial,
-			TLSHandshakeTimeout: 10 * time.Second,
+
+			TLSHandshakeTimeout: 4 * time.Second,
 		}
 	}
+}
+
+func (this *KeepClient) DiscoverKeepServers() error {
+	if prx := os.Getenv("ARVADOS_KEEP_PROXY"); prx != "" {
+		sr := map[string]string{"proxy": prx}
+		this.SetServiceRoots(sr)
+		this.Using_proxy = true
+		this.setClientSettingsProxy()
+		return nil
+	}
 
 	type svcList struct {
 		Items []keepDisk `json:"items"`
@@ -95,6 +122,12 @@ func (this *KeepClient) DiscoverKeepServers() error {
 		}
 	}
 
+	if this.Using_proxy {
+		this.setClientSettingsProxy()
+	} else {
+		this.setClientSettingsStore()
+	}
+
 	this.SetServiceRoots(service_roots)
 
 	return nil

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list