diff --git a/core/trino-main/src/main/java/io/trino/operator/DirectExchangeClientFactory.java b/core/trino-main/src/main/java/io/trino/operator/DirectExchangeClientFactory.java index 04c22b5d286b..ff9b5926f729 100644 --- a/core/trino-main/src/main/java/io/trino/operator/DirectExchangeClientFactory.java +++ b/core/trino-main/src/main/java/io/trino/operator/DirectExchangeClientFactory.java @@ -16,6 +16,7 @@ import com.google.inject.Inject; import io.airlift.concurrent.ThreadPoolExecutorMBean; import io.airlift.http.client.HttpClient; +import io.airlift.http.client.HttpClientConfig; import io.airlift.node.NodeInfo; import io.airlift.units.DataSize; import io.airlift.units.Duration; @@ -63,6 +64,7 @@ public DirectExchangeClientFactory( FeaturesConfig featuresConfig, DirectExchangeClientConfig config, @ForExchange HttpClient httpClient, + @ForExchange HttpClientConfig httpClientConfig, @ForExchange ScheduledExecutorService scheduler, ExchangeManagerRegistry exchangeManagerRegistry) { @@ -72,6 +74,7 @@ public DirectExchangeClientFactory( config.getMaxBufferSize(), config.getDeduplicationBufferSize(), config.getMaxResponseSize(), + httpClientConfig.getMaxContentLength(), config.getConcurrentRequestMultiplier(), config.getMaxErrorDuration(), config.isAcknowledgePages(), @@ -87,6 +90,7 @@ public DirectExchangeClientFactory( DataSize maxBufferedBytes, DataSize deduplicationBufferSize, DataSize maxResponseSize, + DataSize maxClientResponseSize, int concurrentRequestMultiplier, Duration maxErrorDuration, boolean acknowledgePages, @@ -107,7 +111,7 @@ public DirectExchangeClientFactory( // Use only 0.75 of the maxResponseSize to leave room for additional bytes from the encoding // TODO figure out a better way to compute the size of data that will be transferred over the network requireNonNull(maxResponseSize, "maxResponseSize is null"); - long maxResponseSizeBytes = (long) (Math.min(httpClient.getMaxContentLength(), maxResponseSize.toBytes()) * 0.75); + long maxResponseSizeBytes = (long) (Math.min(maxClientResponseSize.toBytes(), maxResponseSize.toBytes()) * 0.75); this.maxResponseSize = DataSize.ofBytes(maxResponseSizeBytes); this.scheduler = requireNonNull(scheduler, "scheduler is null"); diff --git a/core/trino-main/src/main/java/io/trino/server/security/ServerSecurityModule.java b/core/trino-main/src/main/java/io/trino/server/security/ServerSecurityModule.java index cd34a47ed0a7..2225936cc86b 100644 --- a/core/trino-main/src/main/java/io/trino/server/security/ServerSecurityModule.java +++ b/core/trino-main/src/main/java/io/trino/server/security/ServerSecurityModule.java @@ -44,6 +44,7 @@ import static io.airlift.configuration.ConfigBinder.configBinder; import static io.airlift.configuration.ConfigurationAwareModule.combine; import static io.airlift.http.server.HttpServer.ClientCertificate.REQUESTED; +import static io.airlift.http.server.HttpServerConfig.ProcessForwardedMode.ACCEPT; import static io.airlift.jaxrs.JaxrsBinder.jaxrsBinder; import static io.trino.server.security.ResourceSecurityBinder.resourceSecurityBinder; import static java.util.Locale.ENGLISH; @@ -139,7 +140,7 @@ private void insecureHttpAuthenticationDefaults() HttpServerConfig httpServerConfig = buildConfigObject(HttpServerConfig.class); SecurityConfig securityConfig = buildConfigObject(SecurityConfig.class); // if secure https authentication is enabled, disable insecure authentication over http - if ((httpServerConfig.isHttpsEnabled() || httpServerConfig.isProcessForwarded()) && + if ((httpServerConfig.isHttpsEnabled() || httpServerConfig.getProcessForwarded() == ACCEPT) && !securityConfig.getAuthenticationTypes().equals(ImmutableList.of("insecure"))) { install(binder -> configBinder(binder).bindConfigDefaults(SecurityConfig.class, config -> config.setInsecureAuthenticationOverHttpAllowed(false))); } diff --git a/core/trino-main/src/test/java/io/trino/operator/TestMergeOperator.java b/core/trino-main/src/test/java/io/trino/operator/TestMergeOperator.java index 236485941f9e..c3f13e5f3716 100644 --- a/core/trino-main/src/test/java/io/trino/operator/TestMergeOperator.java +++ b/core/trino-main/src/test/java/io/trino/operator/TestMergeOperator.java @@ -18,6 +18,7 @@ import com.google.common.cache.LoadingCache; import com.google.common.collect.ImmutableList; import io.airlift.http.client.HttpClient; +import io.airlift.http.client.HttpClientConfig; import io.airlift.http.client.testing.TestingHttpClient; import io.airlift.node.NodeInfo; import io.airlift.tracing.Tracing; @@ -95,6 +96,7 @@ public void setUp() new FeaturesConfig(), new DirectExchangeClientConfig(), httpClient, + new HttpClientConfig(), executor, new ExchangeManagerRegistry(OpenTelemetry.noop(), Tracing.noopTracer())); orderingCompiler = new OrderingCompiler(new TypeOperators()); diff --git a/pom.xml b/pom.xml index a8898933e4a6..b8ce5081e093 100644 --- a/pom.xml +++ b/pom.xml @@ -182,7 +182,7 @@ 2.7.7-1 3.0.0 - 252 + 254 2.9.6 4.13.1 1.11.3 diff --git a/testing/trino-testing/pom.xml b/testing/trino-testing/pom.xml index ebb374918c16..6312b1cd8431 100644 --- a/testing/trino-testing/pom.xml +++ b/testing/trino-testing/pom.xml @@ -204,7 +204,7 @@ org.eclipse.jetty jetty-server - 12.0.11 + 12.0.12