diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-01-25 15:15:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-25 15:15:20 +0100 |
commit | 6c1c36bf87ed7a82bf5c0c9664280d796bcf7aba (patch) | |
tree | 9d28c99cb0ac40eb716d082735e0cb6a2cdacc37 /configserver | |
parent | 973300fe2a648a8957c57062a44c0217a1250717 (diff) | |
parent | 008fcbc1a73f441e8e515470f9aff3203ffa7549 (diff) |
Merge pull request #25402 from vespa-engine/balder/use-apache-httpclient-5.2
Bump apache httpclient from 5.1 to 5.2.
Diffstat (limited to 'configserver')
10 files changed, 39 insertions, 35 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index b11355df689..ca06fe202d9 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -214,7 +214,7 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye public static class Builder { private TenantRepository tenantRepository; private Optional<Provisioner> hostProvisioner; - private HttpProxy httpProxy = new HttpProxy(new SimpleHttpFetcher()); + private HttpProxy httpProxy = new HttpProxy(new SimpleHttpFetcher(Duration.ofSeconds(30))); private Clock clock = Clock.systemUTC(); private ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder().build(); private Orchestrator orchestrator; diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java index b7b509c899c..132d3d913e7 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/ConfigConvergenceChecker.java @@ -14,6 +14,7 @@ import com.yahoo.config.model.api.ServiceInfo; import org.apache.hc.client5.http.async.methods.SimpleHttpRequest; import org.apache.hc.client5.http.async.methods.SimpleHttpResponse; import org.apache.hc.client5.http.async.methods.SimpleRequestBuilder; +import org.apache.hc.client5.http.config.ConnectionConfig; import org.apache.hc.client5.http.config.RequestConfig; import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient; import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManagerBuilder; @@ -284,7 +285,6 @@ public class ConfigConvergenceChecker extends AbstractComponent { return RequestConfig.custom() .setConnectionRequestTimeout(Timeout.ofSeconds(1)) .setResponseTimeout(Timeout.ofMilliseconds(timeout.toMillis())) - .setConnectTimeout(Timeout.ofSeconds(1)) .build(); } @@ -294,7 +294,10 @@ public class ConfigConvergenceChecker extends AbstractComponent { PoolingAsyncClientConnectionManagerBuilder.create() .setMaxConnTotal(100) .setMaxConnPerRoute(10) - .setConnectionTimeToLive(TimeValue.ofMilliseconds(1)) + .setDefaultConnectionConfig(ConnectionConfig.custom() + .setTimeToLive(TimeValue.ofMilliseconds(1)) + .setConnectTimeout(Timeout.ofSeconds(1)) + .build()) .setTlsStrategy(tlsStrategy) .build()) .setIOReactorConfig(IOReactorConfig.custom() diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClient.java index b2672f7ad85..89c57dd6e0e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/DefaultClusterReindexingStatusClient.java @@ -146,6 +146,7 @@ public class DefaultClusterReindexingStatusClient implements ClusterReindexingSt } + @SuppressWarnings("deprecation") private static CloseableHttpAsyncClient createHttpClient() { return VespaAsyncHttpClientBuilder .create() diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/HttpProxy.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/HttpProxy.java index 1168898d126..0aa86ab211a 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/HttpProxy.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/HttpProxy.java @@ -21,18 +21,15 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.Charset; +import java.time.Duration; import java.util.List; -import java.util.logging.Logger; import static java.nio.charset.StandardCharsets.UTF_8; public class HttpProxy { - - private static final Logger logger = Logger.getLogger(HttpProxy.class.getName()); - private final HttpFetcher fetcher; - @Inject public HttpProxy(NodeHostnameVerifier verifier) { this(new SimpleHttpFetcher(verifier)); } + @Inject public HttpProxy(NodeHostnameVerifier verifier) { this(new SimpleHttpFetcher(Duration.ofSeconds(30), verifier)); } public HttpProxy(HttpFetcher fetcher) { this.fetcher = fetcher; } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java index 3be99ab8393..5d1d8da3648 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/LogRetriever.java @@ -18,8 +18,9 @@ import java.util.Optional; */ public class LogRetriever { - private final CloseableHttpClient httpClient = VespaHttpClientBuilder.create().build(); + private final CloseableHttpClient httpClient = VespaHttpClientBuilder.custom().buildClient(); + @SuppressWarnings("deprecation") public HttpResponse getLogs(String logServerUri, Optional<Instant> deployTime) { HttpGet get = new HttpGet(logServerUri); try { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java index 17f33e477ec..58d2e6a2c90 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SecretStoreValidator.java @@ -33,7 +33,7 @@ public class SecretStoreValidator { private static final String PROTOCOL = "http://"; private static final String AWS_PARAMETER_VALIDATION_HANDLER_POSTFIX = ":4080/validate-secret-store"; private final SecretStore secretStore; - private final CloseableHttpClient httpClient = VespaHttpClientBuilder.create().build(); + private final CloseableHttpClient httpClient = VespaHttpClientBuilder.custom().buildClient(); public SecretStoreValidator(SecretStore secretStore) { this.secretStore = secretStore; @@ -58,6 +58,7 @@ public class SecretStoreValidator { return URI.create(PROTOCOL + hostname + AWS_PARAMETER_VALIDATION_HANDLER_POSTFIX); } + @SuppressWarnings("deprecation") private HttpResponse postRequest(URI uri, Slime slime) { var postRequest = new HttpPost(uri); var data = uncheck(() -> SlimeUtils.toJsonBytes(slime)); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SimpleHttpFetcher.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SimpleHttpFetcher.java index a8dfe3700e7..25d87b5c940 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/SimpleHttpFetcher.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/SimpleHttpFetcher.java @@ -8,14 +8,13 @@ import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.config.RequestConfig; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; -import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; -import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; import org.apache.hc.core5.http.HttpEntity; import org.apache.hc.core5.util.Timeout; import java.io.IOException; import java.net.SocketTimeoutException; import java.net.URI; +import java.time.Duration; import java.util.logging.Level; import java.util.logging.Logger; @@ -24,23 +23,24 @@ public class SimpleHttpFetcher implements HttpFetcher { private final CloseableHttpClient client; - public SimpleHttpFetcher() { this(null); } + public SimpleHttpFetcher(Duration connectTimeout) { this(connectTimeout, null); } - public SimpleHttpFetcher(NodeHostnameVerifier verifier) { - HttpClientBuilder b = verifier != null - ? VespaHttpClientBuilder.create(PoolingHttpClientConnectionManager::new, verifier::verify) - : VespaHttpClientBuilder.create(); - this.client = b.build(); + public SimpleHttpFetcher(Duration connectTimeout, NodeHostnameVerifier verifier) { + VespaHttpClientBuilder builder = VespaHttpClientBuilder.custom().connectTimeout(Timeout.of(connectTimeout)); + if (verifier != null) { + builder.hostnameVerifier(verifier::verify); + } + this.client = builder.buildClient(); } @Override + @SuppressWarnings("deprecation") public HttpResponse get(Params params, URI url) { try { HttpGet request = new HttpGet(url); request.addHeader("Connection", "Close"); request.setConfig( RequestConfig.custom() - .setConnectTimeout(Timeout.ofMilliseconds(params.readTimeoutMs)) .setResponseTimeout(Timeout.ofMilliseconds(params.readTimeoutMs)) .build()); try (CloseableHttpResponse response = client.execute(request)) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java index 69bccfe788d..6393243a92f 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/TesterClient.java @@ -23,7 +23,7 @@ import java.util.logging.Logger; */ public class TesterClient { - private final CloseableHttpClient httpClient = VespaHttpClientBuilder.create().build(); + private final CloseableHttpClient httpClient = VespaHttpClientBuilder.custom().buildClient(); private static final Logger logger = Logger.getLogger(TesterClient.class.getName()); public HttpResponse getStatus(String testerHostname, int port) { @@ -64,6 +64,7 @@ public class TesterClient { return execute(new HttpGet(testerUri), "Failed to get test report"); } + @SuppressWarnings("deprecation") private HttpResponse execute(HttpUriRequest request, String messageIfRequestFails) { logger.log(Level.FINE, () -> "Sending request to tester container " + request.getRequestUri()); try { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterDeploymentMetricsRetriever.java b/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterDeploymentMetricsRetriever.java index 98f01bada3f..c9a03e362ee 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterDeploymentMetricsRetriever.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterDeploymentMetricsRetriever.java @@ -56,15 +56,13 @@ public class ClusterDeploymentMetricsRetriever { private static final ExecutorService executor = Executors.newFixedThreadPool(10, new DaemonThreadFactory("cluster-deployment-metrics-retriever-")); private static final CloseableHttpClient httpClient = - VespaHttpClientBuilder - .create(registry -> new PoolingHttpClientConnectionManager(registry, - null, - null, - TimeValue.ofMinutes(1))) + VespaHttpClientBuilder.custom() + .connectTimeout(Timeout.ofSeconds(10)) + .connectionManagerFactory(registry -> new PoolingHttpClientConnectionManager(registry, null, null, TimeValue.ofMinutes(1))) + .apacheBuilder() .setDefaultRequestConfig( RequestConfig.custom() .setConnectionRequestTimeout(Timeout.ofSeconds(60)) - .setConnectTimeout(Timeout.ofSeconds(10)) .setResponseTimeout(Timeout.ofSeconds(10)) .build()) .build(); @@ -160,6 +158,7 @@ public class ClusterDeploymentMetricsRetriever { return new ClusterInfo(dimensions.field("clusterid").asString(), dimensions.field("clustertype").asString()); } + @SuppressWarnings("deprecation") private static Slime doMetricsRequest(URI hostURI) { HttpGet get = new HttpGet(hostURI); try (CloseableHttpResponse response = httpClient.execute(get)) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterProtonMetricsRetriever.java b/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterProtonMetricsRetriever.java index d6fde04cd71..5f3711e43b6 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterProtonMetricsRetriever.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/metrics/ClusterProtonMetricsRetriever.java @@ -12,7 +12,6 @@ import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.config.RequestConfig; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; -import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.util.Timeout; @@ -27,14 +26,15 @@ public class ClusterProtonMetricsRetriever { private static final Logger log = Logger.getLogger(ClusterProtonMetricsRetriever.class.getName()); - private static final CloseableHttpClient httpClient = VespaHttpClientBuilder - .create(PoolingHttpClientConnectionManager::new) - .setDefaultRequestConfig( - RequestConfig.custom() - .setConnectTimeout(Timeout.ofSeconds(10)) - .setResponseTimeout(Timeout.ofSeconds(10)) - .build()) - .build(); + private static final CloseableHttpClient httpClient = + VespaHttpClientBuilder + .custom() + .connectTimeout(Timeout.ofSeconds(10)) + .apacheBuilder() + .setDefaultRequestConfig(RequestConfig.custom() + .setResponseTimeout(Timeout.ofSeconds(10)) + .build()) + .build(); public Map<String, ProtonMetricsAggregator> requestMetricsGroupedByCluster(Collection<URI> hosts) { @@ -100,6 +100,7 @@ public class ClusterProtonMetricsRetriever { aggregator.addAll(metrics.field("values")); } + @SuppressWarnings("deprecation") private static Slime doMetricsRequest(URI hostURI) { HttpGet get = new HttpGet(hostURI); try (CloseableHttpResponse response = httpClient.execute(get)) { |