diff --git a/extensions/resteasy-classic/resteasy/deployment/src/test/java/io/quarkus/resteasy/test/IncompletePostTestCase.java b/extensions/resteasy-classic/resteasy/deployment/src/test/java/io/quarkus/resteasy/test/IncompletePostTestCase.java index a61a290ea5a4c..38c0795afec85 100644 --- a/extensions/resteasy-classic/resteasy/deployment/src/test/java/io/quarkus/resteasy/test/IncompletePostTestCase.java +++ b/extensions/resteasy-classic/resteasy/deployment/src/test/java/io/quarkus/resteasy/test/IncompletePostTestCase.java @@ -8,8 +8,6 @@ import org.hamcrest.Matchers; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.DisabledOnOs; -import org.junit.jupiter.api.condition.OS; import org.junit.jupiter.api.extension.RegisterExtension; import io.quarkus.test.QuarkusUnitTest; @@ -18,13 +16,13 @@ import io.restassured.config.HttpClientConfig; import io.restassured.config.RestAssuredConfig; -@DisabledOnOs(value = OS.WINDOWS, disabledReason = "very flaky, see https://github.com/quarkusio/quarkus/issues/23642") public class IncompletePostTestCase { @RegisterExtension static QuarkusUnitTest runner = new QuarkusUnitTest() .withApplicationRoot((jar) -> jar - .addClasses(PostEndpoint.class)); + .addClasses(PostEndpoint.class)) + .overrideConfigKey("quarkus.http.accept-backlog", "200"); @TestHTTPResource URL url; @@ -34,8 +32,8 @@ public void testIncompleteWrite() throws Exception { PostEndpoint.invoked = false; //make sure incomplete writes do not block threads - //and that incoplete data is not delivered to the endpoint - for (int i = 0; i < 1000; ++i) { + //and that incomplete data is not delivered to the endpoint + for (int i = 0; i < 100; ++i) { Socket socket = new Socket(url.getHost(), url.getPort()); socket.getOutputStream().write( "POST /post HTTP/1.1\r\nHost: localhost\r\nContent-length:10\r\n\r\ntest".getBytes(StandardCharsets.UTF_8)); diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/HttpConfiguration.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/HttpConfiguration.java index 8c95dad8119ba..32264d5667884 100644 --- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/HttpConfiguration.java +++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/HttpConfiguration.java @@ -181,6 +181,12 @@ public class HttpConfiguration { @ConfigItem public boolean tcpFastOpen; + /** + * The accept backlog, this is how many connections can be waiting to be accepted before connections start being rejected + */ + @ConfigItem + public int acceptBacklog; + /** * Path to a unix domain socket */ diff --git a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java index ae048e7ae10e8..18645cc249a72 100644 --- a/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java +++ b/extensions/vertx-http/runtime/src/main/java/io/quarkus/vertx/http/runtime/VertxHttpRecorder.java @@ -844,6 +844,7 @@ private static HttpServerOptions createHttpServerOptions(HttpConfiguration httpC options.setReusePort(httpConfiguration.soReusePort); options.setTcpQuickAck(httpConfiguration.tcpQuickAck); options.setTcpCork(httpConfiguration.tcpCork); + options.setAcceptBacklog(httpConfiguration.acceptBacklog); options.setTcpFastOpen(httpConfiguration.tcpFastOpen); options.setCompressionSupported(httpConfiguration.enableCompression); options.setDecompressionSupported(httpConfiguration.enableDecompression);