From 6bc7c9fb14709f3655d11f916a857ecf2704dd16 Mon Sep 17 00:00:00 2001 From: Peter Zaoral Date: Wed, 29 Apr 2026 18:47:52 +0200 Subject: [PATCH] HttpDistTest.maxQueuedRequestsTest fails on runners with limited vCPUs Closes: #48598 Signed-off-by: Peter Zaoral --- .../keycloak/it/cli/dist/HttpDistTest.java | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/quarkus/tests/integration/src/test/java/org/keycloak/it/cli/dist/HttpDistTest.java b/quarkus/tests/integration/src/test/java/org/keycloak/it/cli/dist/HttpDistTest.java index f62d66b821d1..36dd4f7c278e 100644 --- a/quarkus/tests/integration/src/test/java/org/keycloak/it/cli/dist/HttpDistTest.java +++ b/quarkus/tests/integration/src/test/java/org/keycloak/it/cli/dist/HttpDistTest.java @@ -21,6 +21,8 @@ import java.util.ArrayList; import java.util.List; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import org.keycloak.it.junit5.extension.CLIResult; import org.keycloak.it.junit5.extension.DistributionTest; @@ -50,16 +52,20 @@ public class HttpDistTest { public void maxQueuedRequestsTest(KeycloakDistribution dist) { dist.run("start-dev", "--http-max-queued-requests=1", "--http-pool-max-threads=1"); - // run requests async - List> statusCodesFuture = new ArrayList<>(); - for (int i = 0; i < 5; i++) { - statusCodesFuture.add(CompletableFuture.supplyAsync(() -> - when().get("/realms/master/test-resources/slow").getStatusCode())); + ExecutorService executor = Executors.newFixedThreadPool(5); + try { + List> statusCodesFuture = new ArrayList<>(); + for (int i = 0; i < 5; i++) { + statusCodesFuture.add(CompletableFuture.supplyAsync(() -> + when().get("/realms/master/test-resources/slow").getStatusCode(), executor)); + } + List statusCodes = statusCodesFuture.stream().map(CompletableFuture::join).toList(); + + assertThat("Some of the requests should be properly rejected", statusCodes, hasItem(503)); + assertThat("None of the requests should throw an unhandled exception", statusCodes, not(hasItem(500))); + } finally { + executor.shutdown(); } - List statusCodes = statusCodesFuture.stream().map(CompletableFuture::join).toList(); - - assertThat("Some of the requests should be properly rejected", statusCodes, hasItem(503)); - assertThat("None of the requests should throw an unhandled exception", statusCodes, not(hasItem(500))); } @Test