Session has expired (Version 25.1.3) #948

Open
opened 2026-03-04 11:24:09 -05:00 by deekerman · 0 comments
Owner

Originally created by @MatthiasSchnoeke on GitHub (Jul 23, 2025).

Description

After update from 25.1.2 up to Version 25.1.3 all users are running in a session expired issue loop. It seems that it compares the HAProxy IPs (which can change with each request) instead of the client IP.

23-07-2025 10:57:28.744 [qtp1495791876-43] ERROR i.c.service.session.CBSessionManager - null
io.cloudbeaver.DBWebException: Session remote address mismatch. Expected: 10.0.134.2, actual: 10.0.136.2

io.cloudbeaver.DBWebException: Session has expired
at io.cloudbeaver.service.session.CBSessionManager.getWebSession(CBSessionManager.java:143)
at io.cloudbeaver.service.session.CBSessionManager.getWebSession(CBSessionManager.java:106)

23-07-2025 10:49:46.940 [qtp1495791876-46] DEBUG i.c.server.graphql.GraphQLEndpoint - GraphQL call failed at '/navNodeChildren'
io.cloudbeaver.DBWebException: Session has expired
at io.cloudbeaver.service.session.CBSessionManager.getWebSession(CBSessionManager.java:143)
at io.cloudbeaver.service.session.CBSessionManager.getWebSession(CBSessionManager.java:106)
at io.cloudbeaver.service.WebServiceBindingBase.getWebSession(WebServiceBindingBase.java:112)
at io.cloudbeaver.service.navigator.WebServiceBindingNavigator.lambda$0(WebServiceBindingNavigator.java:40)
at graphql.execution.ExecutionStrategy.invokeDataFetcher(ExecutionStrategy.java:533)
at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:497)
at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:438)
at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:397)
at graphql.execution.ExecutionStrategy.getAsyncFieldValueInfo(ExecutionStrategy.java:335)
at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:57)
at graphql.execution.Execution.executeOperation(Execution.java:180)
at graphql.execution.Execution.execute(Execution.java:116)
at graphql.GraphQL.execute(GraphQL.java:546)
at graphql.GraphQL.lambda$parseValidateAndExecute$13(GraphQL.java:476)
at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187)
at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341)
at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:471)
at graphql.GraphQL.lambda$executeAsync$9(GraphQL.java:429)
at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187)
at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341)
at graphql.GraphQL.executeAsync(GraphQL.java:418)
at graphql.GraphQL.execute(GraphQL.java:359)
at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeQuery(GraphQLEndpoint.java:261)
at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeSingleQuery(GraphQLEndpoint.java:193)
at io.cloudbeaver.server.graphql.GraphQLEndpoint.doPost(GraphQLEndpoint.java:176)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:653)
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.eclipse.jetty.ee10.servlet.ServletHolder.handle(ServletHolder.java:736)
at org.eclipse.jetty.ee10.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1614)
at org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:195)
at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205)
at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1586)
at org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1547)
at org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:819)
at org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:436)
at org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:464)
at org.eclipse.jetty.ee10.servlet.SessionHandler.handle(SessionHandler.java:717)
at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1060)
at org.eclipse.jetty.server.Server.handle(Server.java:182)
at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662)
at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:418)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99)
at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:478)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:441)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293)
at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164)
at java.base/java.lang.Thread.run(Thread.java:1583)

Steps to reproduce

No response

Expected/Desired Behavior

Login behind load balancer successful.

CloudBeaver Version

data-backend-version="25.1.3.202507210848"
data-version="25.1.3.202507210850"

Additional context

We run CB in an OpenShift Cluster. Set "forwardProxy: true" in app setting has no effect.

Originally created by @MatthiasSchnoeke on GitHub (Jul 23, 2025). ### Description After update from 25.1.2 up to Version 25.1.3 all users are running in a session expired issue loop. It seems that it compares the HAProxy IPs (which can change with each request) instead of the client IP. 23-07-2025 10:57:28.744 [qtp1495791876-43] ERROR i.c.service.session.CBSessionManager - null io.cloudbeaver.DBWebException: Session remote address mismatch. Expected: 10.0.134.2, actual: 10.0.136.2 io.cloudbeaver.DBWebException: Session has expired at io.cloudbeaver.service.session.CBSessionManager.getWebSession(CBSessionManager.java:143) at io.cloudbeaver.service.session.CBSessionManager.getWebSession(CBSessionManager.java:106) 23-07-2025 10:49:46.940 [qtp1495791876-46] DEBUG i.c.server.graphql.GraphQLEndpoint - GraphQL call failed at '/navNodeChildren' io.cloudbeaver.DBWebException: Session has expired at io.cloudbeaver.service.session.CBSessionManager.getWebSession(CBSessionManager.java:143) at io.cloudbeaver.service.session.CBSessionManager.getWebSession(CBSessionManager.java:106) at io.cloudbeaver.service.WebServiceBindingBase.getWebSession(WebServiceBindingBase.java:112) at io.cloudbeaver.service.navigator.WebServiceBindingNavigator.lambda$0(WebServiceBindingNavigator.java:40) at graphql.execution.ExecutionStrategy.invokeDataFetcher(ExecutionStrategy.java:533) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:497) at graphql.execution.ExecutionStrategy.fetchField(ExecutionStrategy.java:438) at graphql.execution.ExecutionStrategy.resolveFieldWithInfo(ExecutionStrategy.java:397) at graphql.execution.ExecutionStrategy.getAsyncFieldValueInfo(ExecutionStrategy.java:335) at graphql.execution.AsyncExecutionStrategy.execute(AsyncExecutionStrategy.java:57) at graphql.execution.Execution.executeOperation(Execution.java:180) at graphql.execution.Execution.execute(Execution.java:116) at graphql.GraphQL.execute(GraphQL.java:546) at graphql.GraphQL.lambda$parseValidateAndExecute$13(GraphQL.java:476) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) at graphql.GraphQL.parseValidateAndExecute(GraphQL.java:471) at graphql.GraphQL.lambda$executeAsync$9(GraphQL.java:429) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) at graphql.GraphQL.executeAsync(GraphQL.java:418) at graphql.GraphQL.execute(GraphQL.java:359) at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeQuery(GraphQLEndpoint.java:261) at io.cloudbeaver.server.graphql.GraphQLEndpoint.executeSingleQuery(GraphQLEndpoint.java:193) at io.cloudbeaver.server.graphql.GraphQLEndpoint.doPost(GraphQLEndpoint.java:176) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:653) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:723) at org.eclipse.jetty.ee10.servlet.ServletHolder.handle(ServletHolder.java:736) at org.eclipse.jetty.ee10.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1614) at org.eclipse.jetty.ee10.websocket.servlet.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:195) at org.eclipse.jetty.ee10.servlet.FilterHolder.doFilter(FilterHolder.java:205) at org.eclipse.jetty.ee10.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1586) at org.eclipse.jetty.ee10.servlet.ServletHandler$MappedServlet.handle(ServletHandler.java:1547) at org.eclipse.jetty.ee10.servlet.ServletChannel.dispatch(ServletChannel.java:819) at org.eclipse.jetty.ee10.servlet.ServletChannel.handle(ServletChannel.java:436) at org.eclipse.jetty.ee10.servlet.ServletHandler.handle(ServletHandler.java:464) at org.eclipse.jetty.ee10.servlet.SessionHandler.handle(SessionHandler.java:717) at org.eclipse.jetty.server.handler.ContextHandler.handle(ContextHandler.java:1060) at org.eclipse.jetty.server.Server.handle(Server.java:182) at org.eclipse.jetty.server.internal.HttpChannelState$HandlerInvoker.run(HttpChannelState.java:662) at org.eclipse.jetty.server.internal.HttpConnection.onFillable(HttpConnection.java:418) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:322) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:99) at org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:478) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:441) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:293) at org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:201) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:311) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:979) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1209) at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1164) at java.base/java.lang.Thread.run(Thread.java:1583) ### Steps to reproduce _No response_ ### Expected/Desired Behavior Login behind load balancer successful. ### CloudBeaver Version data-backend-version="25.1.3.202507210848" data-version="25.1.3.202507210850" ### Additional context We run CB in an OpenShift Cluster. Set "forwardProxy: true" in app setting has no effect.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cloudbeaver#948
No description provided.