diff options
author | Håkon Hallingstad <hakon@oath.com> | 2017-12-13 15:07:20 +0100 |
---|---|---|
committer | Håkon Hallingstad <hakon@oath.com> | 2017-12-13 15:07:20 +0100 |
commit | c4dcc28f95f58c0d870a925f8f1f6e4d7fc8814f (patch) | |
tree | 38edcf9d97b00578c1db5edbef77cb5d5e2f6f71 /node-admin | |
parent | 2cc63978a48f7bfe1dab9f3f7e51b0bab443e394 (diff) |
Set connection timeouts on config server client
Diffstat (limited to 'node-admin')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/util/ConfigServerHttpRequestExecutor.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/util/ConfigServerHttpRequestExecutor.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/util/ConfigServerHttpRequestExecutor.java index bdfa98a5113..3576f37eb9a 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/util/ConfigServerHttpRequestExecutor.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/util/ConfigServerHttpRequestExecutor.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.node.admin.util; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.http.HttpHeaders; +import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; @@ -63,8 +64,19 @@ public class ConfigServerHttpRequestExecutor { PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(getConnectionSocketFactoryRegistry()); cm.setMaxTotal(200); // Increase max total connections to 200, which should be enough + // Have experienced hang in socket read, which may have been because of + // system defaults, therefore set explicit timeouts. Set arbitrarily to + // 15s > 10s used by Orchestrator lock timeout. + int timeoutMs = 15_000; + RequestConfig requestBuilder = RequestConfig.custom() + .setConnectTimeout(timeoutMs) // establishment of connection + .setConnectionRequestTimeout(timeoutMs) // connection from connection manager + .setSocketTimeout(timeoutMs) // waiting for data + .build(); + return new ConfigServerHttpRequestExecutor(randomizeConfigServerUris(configServerUris), HttpClientBuilder.create() + .setDefaultRequestConfig(requestBuilder) .disableAutomaticRetries() .setUserAgent("node-admin") .setConnectionManager(cm).build()); |