Skip to content

Conversation

fabio-rizzo-01
Copy link
Contributor

@fabio-rizzo-01 fabio-rizzo-01 commented Sep 4, 2025

Added missing port property in Keycloack profile for integration testing
#2501

@@ -27,6 +27,8 @@ public class KeycloakProfile implements QuarkusTestProfile {
@Override
public Map<String, String> getConfigOverrides() {
return Map.of(
"quarkus.http.test-port",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This property is already set here:

I'm not sure adding it here will solve the original issue tbh.

Copy link
Contributor Author

@fabio-rizzo-01 fabio-rizzo-01 Sep 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know the property is in there but when I debugged the test that property is gone, so I assumed the override was removing it, even though it shouldn't be the case. Adding it back fixed the test on my machine. Can someone else check if they get the same result?

@RussellSpitzer
Copy link
Member

RussellSpitzer commented Sep 4, 2025

On my machine this at least gets us to the real exception

RestCatalogKeycloakFileIT > testDropTableWithPurge() FAILED
    java.lang.RuntimeException: java.util.concurrent.CompletionException: java.lang.RuntimeException: Unable to start Quarkus test resource class org.apache.polaris.test.commons.keycloak.KeycloakLifecycleManager
        at io.quarkus.test.junit.QuarkusIntegrationTestExtension.throwBootFailureException(QuarkusIntegrationTestExtension.java:346)
        at io.quarkus.test.junit.QuarkusIntegrationTestExtension.beforeEach(QuarkusIntegrationTestExtension.java:114)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)

        Caused by:
        java.util.concurrent.CompletionException: java.lang.RuntimeException: Unable to start Quarkus test resource class org.apache.polaris.test.commons.keycloak.KeycloakLifecycleManager
            at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
            at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
            at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1807)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
            at java.base/java.lang.Thread.run(Thread.java:1583)

            Caused by:
            java.lang.RuntimeException: Unable to start Quarkus test resource class org.apache.polaris.test.commons.keycloak.KeycloakLifecycleManager
                at io.quarkus.test.common.TestResourceManager$TestResourceRunnable.run(TestResourceManager.java:690)
                at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
                ... 3 more

                Caused by:
                jakarta.ws.rs.ProcessingException: jakarta.ws.rs.ForbiddenException: HTTP 403 Forbidden
                    at app//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.filterRequest(ClientInvocation.java:652)
                    at app//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:424)
                    at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invokeSync(ClientInvoker.java:134)
                    at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:103)
                    at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:102)
                    at app/jdk.proxy3/jdk.proxy3.$Proxy111.create(Unknown Source)
                    at app//org.apache.polaris.test.commons.keycloak.KeycloakContainer.createRole(KeycloakContainer.java:100)
                    at app//org.apache.polaris.test.commons.keycloak.KeycloakContainer.start(KeycloakContainer.java:67)
                    at app//org.apache.polaris.test.commons.keycloak.KeycloakLifecycleManager.start(KeycloakLifecycleManager.java:45)
                    at app//io.quarkus.test.common.TestResourceManager$TestResourceRunnable.run(TestResourceManager.java:684)
                    ... 4 more

                    Caused by:
                    jakarta.ws.rs.ForbiddenException: HTTP 403 Forbidden
                        at app//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus(ClientInvocation.java:240)
                        at app//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:216)
                        at app//org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:59)
                        at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invokeSync(ClientInvoker.java:136)
                        at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:103)
                        at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:102)
                        at app/jdk.proxy3/jdk.proxy3.$Proxy102.grantToken(Unknown Source)
                        at app//org.keycloak.admin.client.token.TokenManager.grantToken(TokenManager.java:95)
                        at app//org.keycloak.admin.client.token.TokenManager.getAccessToken(TokenManager.java:71)
                        at app//org.keycloak.admin.client.token.TokenManager.getAccessTokenString(TokenManager.java:66)
                        at app//org.keycloak.admin.client.resource.BearerAuthFilter.filter(BearerAuthFilter.java:52)
                        at app//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.filterRequest(ClientInvocation.java:644)
                        ... 13 more

But does not fix the issue

@fabio-rizzo-01
Copy link
Contributor Author

On my machine this at least gets us to the real exception

RestCatalogKeycloakFileIT > testDropTableWithPurge() FAILED
    java.lang.RuntimeException: java.util.concurrent.CompletionException: java.lang.RuntimeException: Unable to start Quarkus test resource class org.apache.polaris.test.commons.keycloak.KeycloakLifecycleManager
        at io.quarkus.test.junit.QuarkusIntegrationTestExtension.throwBootFailureException(QuarkusIntegrationTestExtension.java:346)
        at io.quarkus.test.junit.QuarkusIntegrationTestExtension.beforeEach(QuarkusIntegrationTestExtension.java:114)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)

        Caused by:
        java.util.concurrent.CompletionException: java.lang.RuntimeException: Unable to start Quarkus test resource class org.apache.polaris.test.commons.keycloak.KeycloakLifecycleManager
            at java.base/java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:315)
            at java.base/java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:320)
            at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1807)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
            at java.base/java.lang.Thread.run(Thread.java:1583)

            Caused by:
            java.lang.RuntimeException: Unable to start Quarkus test resource class org.apache.polaris.test.commons.keycloak.KeycloakLifecycleManager
                at io.quarkus.test.common.TestResourceManager$TestResourceRunnable.run(TestResourceManager.java:690)
                at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(CompletableFuture.java:1804)
                ... 3 more

                Caused by:
                jakarta.ws.rs.ProcessingException: jakarta.ws.rs.ForbiddenException: HTTP 403 Forbidden
                    at app//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.filterRequest(ClientInvocation.java:652)
                    at app//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.invoke(ClientInvocation.java:424)
                    at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invokeSync(ClientInvoker.java:134)
                    at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:103)
                    at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:102)
                    at app/jdk.proxy3/jdk.proxy3.$Proxy111.create(Unknown Source)
                    at app//org.apache.polaris.test.commons.keycloak.KeycloakContainer.createRole(KeycloakContainer.java:100)
                    at app//org.apache.polaris.test.commons.keycloak.KeycloakContainer.start(KeycloakContainer.java:67)
                    at app//org.apache.polaris.test.commons.keycloak.KeycloakLifecycleManager.start(KeycloakLifecycleManager.java:45)
                    at app//io.quarkus.test.common.TestResourceManager$TestResourceRunnable.run(TestResourceManager.java:684)
                    ... 4 more

                    Caused by:
                    jakarta.ws.rs.ForbiddenException: HTTP 403 Forbidden
                        at app//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.handleErrorStatus(ClientInvocation.java:240)
                        at app//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.extractResult(ClientInvocation.java:216)
                        at app//org.jboss.resteasy.client.jaxrs.internal.proxy.extractors.BodyEntityExtractor.extractEntity(BodyEntityExtractor.java:59)
                        at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invokeSync(ClientInvoker.java:136)
                        at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientInvoker.invoke(ClientInvoker.java:103)
                        at app//org.jboss.resteasy.client.jaxrs.internal.proxy.ClientProxy.invoke(ClientProxy.java:102)
                        at app/jdk.proxy3/jdk.proxy3.$Proxy102.grantToken(Unknown Source)
                        at app//org.keycloak.admin.client.token.TokenManager.grantToken(TokenManager.java:95)
                        at app//org.keycloak.admin.client.token.TokenManager.getAccessToken(TokenManager.java:71)
                        at app//org.keycloak.admin.client.token.TokenManager.getAccessTokenString(TokenManager.java:66)
                        at app//org.keycloak.admin.client.resource.BearerAuthFilter.filter(BearerAuthFilter.java:52)
                        at app//org.jboss.resteasy.client.jaxrs.internal.ClientInvocation.filterRequest(ClientInvocation.java:644)
                        ... 13 more

But does not fix the issue

is this just running the integration test? Mine passes with no issues

@jbonofre
Copy link
Member

jbonofre commented Sep 4, 2025

It seems it depends of the Docker "machine" you are using. The problem only occurs with Docker Desktop (I bet related to the Docker Desktop network stack). If you are using "native" Docker daemon, or podman, etc, there's no issue.

@RussellSpitzer
Copy link
Member

See my notes on the issue, I now can pass without this change or any others. I just ran the full suite on the RC candidate and everything passed.

@RussellSpitzer
Copy link
Member

RussellSpitzer commented Sep 4, 2025

Now that i'm running
./gradlew --no-build-cache :polaris-runtime-service:intTest --tests "RestCatalogKeycloakFileIT.*" --info

I still get failures, and on this branch as well. The same 403 error I posted above.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants