aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar buchgr <buchgr@google.com>2017-12-05 01:29:53 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-05 01:31:59 -0800
commit581c197e2da57214f8c4915ba6ca9a78b5af537c (patch)
tree459d9b768132a5424a1c65da90afe74f4fe229d0 /src/main
parenta0a3e2a38faad3f1bc4cdb69246bd2768dfa1620 (diff)
remote: Have --remote_rest_cache respect --remote_timeout.
RELNOTES: The --remote_rest_cache flag now respects --remote_timeout. PiperOrigin-RevId: 177926523
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/SimpleBlobStoreFactory.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/blobstore/RestBlobStore.java9
2 files changed, 11 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/remote/SimpleBlobStoreFactory.java b/src/main/java/com/google/devtools/build/lib/remote/SimpleBlobStoreFactory.java
index e9ffe2aa5a..15b600048e 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/SimpleBlobStoreFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/SimpleBlobStoreFactory.java
@@ -21,6 +21,7 @@ import com.google.devtools.build.lib.remote.blobstore.RestBlobStore;
import com.google.devtools.build.lib.remote.blobstore.SimpleBlobStore;
import com.google.devtools.build.lib.vfs.Path;
import java.io.IOException;
+import java.util.concurrent.TimeUnit;
import javax.annotation.Nullable;
/**
@@ -32,7 +33,8 @@ public final class SimpleBlobStoreFactory {
private SimpleBlobStoreFactory() {}
public static SimpleBlobStore createRest(RemoteOptions options) throws IOException {
- return new RestBlobStore(options.remoteRestCache, options.restCachePoolSize);
+ return new RestBlobStore(options.remoteRestCache, options.restCachePoolSize,
+ (int) TimeUnit.SECONDS.toMillis(options.remoteTimeout));
}
public static SimpleBlobStore createLocalDisk(RemoteOptions options, Path workingDirectory)
diff --git a/src/main/java/com/google/devtools/build/lib/remote/blobstore/RestBlobStore.java b/src/main/java/com/google/devtools/build/lib/remote/blobstore/RestBlobStore.java
index 43b90a5eda..e6f56971b0 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/blobstore/RestBlobStore.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/blobstore/RestBlobStore.java
@@ -21,6 +21,7 @@ import java.net.URISyntaxException;
import org.apache.http.HttpEntity;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
+import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpHead;
import org.apache.http.client.methods.HttpPut;
@@ -60,7 +61,7 @@ public final class RestBlobStore implements SimpleBlobStore {
* @param baseUrl base URL for the remote cache
* @param poolSize maximum number of simultaneous connections
*/
- public RestBlobStore(String baseUrl, int poolSize) throws IOException {
+ public RestBlobStore(String baseUrl, int poolSize, int timeoutMillis) throws IOException {
validateUrl(baseUrl);
this.baseUrl = baseUrl;
connMan = new PoolingHttpClientConnectionManager();
@@ -69,6 +70,12 @@ public final class RestBlobStore implements SimpleBlobStore {
clientFactory = HttpClientBuilder.create();
clientFactory.setConnectionManager(connMan);
clientFactory.setConnectionManagerShared(true);
+ clientFactory.setDefaultRequestConfig(RequestConfig.custom()
+ // Timeout to establish a connection.
+ .setConnectTimeout(timeoutMillis)
+ // Timeout between reading data.
+ .setSocketTimeout(timeoutMillis)
+ .build());
}
@Override