-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Description
Describe the bug
I have set up a 5-node clustered Keycloak with JDBC_PING (MS-SQL Server). During my production load tests, I am handling 75 users per second through a load balancer. However, during and even some time after my load tests using the Keycloak benchmark project, I encounter the following error when I click the 'Sessions' link in the relevant realm.
WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (executor-thread-12) SQL Error: 8003, SQLState: S0001
ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (executor-thread-12) The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
Version
25.0.2
Expected behavior
When I click the 'Sessions' link, I expect to see the list of active sessions.
Actual behavior
However, unfortunately, I cannot view it.
How to Reproduce?
Keycloak version : 25.0.2
Docker compose, Keycloak start params:
services:
####################################
## Main Workloads
####################################
keycloak:
image: keycloak:${KC_VERSION}
command: ["start", "--optimized"]
restart: unless-stopped
environment:
TZ: Europe/Istanbul
KC_HEALTH_ENABLED: true
KC_METRICS_ENABLED: true
KC_DB_USERNAME: ${KC_DB_USERNAME}
KC_DB_PASSWORD: ${KC_DB_PASSWORD}
KC_DB_URL_DATABASE: ${KC_DB_URL_DATABASE}
KC_DB_URL_HOST: ${KC_DB_URL_HOST}
KC_DB_URL_PORT: ${KC_DB_URL_PORT}
KC_DB_SCHEMA: ${KC_DB_SCHEMA}
KC_DB_URL_PROPERTIES: ${KC_DB_URL_PROPERTIES}
JGROUPS_DISCOVERY_EXTERNAL_IP: ${HOST_IP}
KC_LOG_LEVEL: ${KC_LOG_LEVEL}
KC_HTTP_ENABLED: true
KC_PROXY: edge
HTTP_ADDRESS_FORWARDING: true
KC_HOSTNAME: https://${USER_URL_HOST}
KC_HOSTNAME_ADMIN: https://${ADMIN_URL_HOST}
KC_HEALTH_ENABLED=true
KC_METRICS_ENABLED=true
KC_DB=mssql
KC_TRANSACTION_XA_ENABLED=false
KC_HTTP_MAX_QUEUED_REQUESTS=1000
KC_HTTP_POOL_MAX_THREADS=66
KC_SPI_DBLOCK_JPA_LOCK_WAIT_TIMEOUT=900
KC_CACHE=ispn
KC_CACHE_CONFIG_FILE=cache-ispn-jdbc-ping.xml
JGROUPS_DISCOVERY_PROTOCOL=JDBC_PING
CACHE_OWNERS_COUNT=2
CACHE_OWNERS_AUTH_SESSIONS_COUNT=2
KC_FEATURES=persistent-user-sessions
Load test command:
bin/kcb.sh \
--scenario=keycloak.scenario.authentication.LoginUserPassword \
--server-url=[KEYCLOAK_SERVER_URL] \
--realm-name=[REALM_NAME] \
--username=[USER_NAME] \
--user-password=[PASS] \
--client-id=[CLIENT_ID] \
--client-secret=[CLIENT_SECRET] \
--client-redirect-uri=[CLIENT_REDIRECT_URI] \
--users-per-sec=1 \
--concurrent-users=75 \
--measurement=600 \
--log-http-on-failure
Anything else?
--Debug stack trace log:
keycloak-1 | org.keycloak.models.jpa.session.PersistentClientSessionEntity(sess) -> EntityResultInitializer(org.keycloak.models.jpa.session.PersistentClientSessionEntity(sess))@592811069 (SingleTableEntityPersister(org.keycloak.models.jpa.session.PersistentClientSessionEntity))
keycloak-1 | org.keycloak.models.jpa.session.PersistentClientSessionEntity(sess).{id} -> NonAggregatedIdentifierMappingFetchInitializer(org.keycloak.models.jpa.session.PersistentClientSessionEntity(sess).{id}) : `class org.keycloak.models.jpa.session.PersistentClientSessionEntity`@370940940 (org.hibernate.metamodel.mapping.internal.NonAggregatedIdentifierMappingImpl@4a3ca7e8)
keycloak-1 |
keycloak-1 | 2024-08-15 13:57:24,224 DEBUG [org.hibernate.SQL] (executor-thread-5) select pcse1_0.CLIENT_ID,pcse1_0.CLIENT_STORAGE_PROVIDER,pcse1_0.EXTERNAL_CLIENT_ID,pcse1_0.OFFLINE_FLAG,pcse1_0.USER_SESSION_ID,pcse1_0.DATA,pcse1_0.TIMESTAMP,pcse1_0.version from dbo.OFFLINE_CLIENT_SESSION pcse1_0 where pcse1_0.OFFLINE_FLAG=? and (pcse1_0.USER_SESSION_ID in (?...?) or pcse1_0.USER_SESSION_ID in (?...?) or pcse1_0.USER_SESSION_ID in (?...?) or pcse1_0.USER_SESSION_ID in (?...?))
keycloak-1 | 2024-08-15 13:57:24,233 FINE [com.microsoft.sqlserver.jdbc.internals.SQLServerStatement] (executor-thread-5) sp_executesql SQL: null created by (ConnectionID:6 ClientConnectionId: 44c273f0-0740-4cae-81df-b9c7dc9e09bb)
keycloak-1 | 2024-08-15 13:57:24,255 FINE [com.microsoft.sqlserver.jdbc.internals.SQLServerStatement] (executor-thread-5) sp_executesql SQL: select pcse1_0.CLIENT_ID,pcse1_0.CLIENT_STORAGE_PROVIDER,pcse1_0.EXTERNAL_CLIENT_ID,pcse1_0.OFFLINE_FLAG,pcse1_0.USER_SESSION_ID,pcse1_0.DATA,pcse1_0.TIMESTAMP,pcse1_0.version from dbo.OFFLINE_CLIENT_SESSION pcse1_0 where pcse1_0.OFFLINE_FLAG= @P0 and (pcse1_0.USER_SESSION_ID in ( @P1 , … , @P2048 ) or pcse1_0.USER_SESSION_ID in ( @P2049 , …, @P4096 ) or pcse1_0.USER_SESSION_ID in ( @P4097 , … , @P6144 ) or pcse1_0.USER_SESSION_ID in ( @P6145 ,… , @P8192)): calling sp_executesql: SQL:select pcse1_0.CLIENT_ID,pcse1_0.CLIENT_STORAGE_PROVIDER,pcse1_0.EXTERNAL_CLIENT_ID,pcse1_0.OFFLINE_FLAG,pcse1_0.USER_SESSION_ID,pcse1_0.DATA,pcse1_0.TIMESTAMP,pcse1_0.version from dbo.OFFLINE_CLIENT_SESSION pcse1_0 where pcse1_0.OFFLINE_FLAG= @P0 and (pcse1_0.USER_SESSION_ID in ( @P1 ,… , @P8192))
keycloak-1 | 2024-08-15 13:57:24,295 FINE [com.microsoft.sqlserver.jdbc.internals.SQLServerException] (executor-thread-5) *** SQLException: com.microsoft.sqlserver.jdbc.SQLServerException: The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request. Msg 8003, Level 16, State 1, The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
keycloak-1 | 2024-08-15 13:57:24,295 DEBUG [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (executor-thread-5) JDBC exception executing SQL [select pcse1_0.CLIENT_ID,pcse1_0.CLIENT_STORAGE_PROVIDER,pcse1_0.EXTERNAL_CLIENT_ID,pcse1_0.OFFLINE_FLAG,pcse1_0.USER_SESSION_ID,pcse1_0.DATA,pcse1_0.TIMESTAMP,pcse1_0.version from dbo.OFFLINE_CLIENT_SESSION pcse1_0 where pcse1_0.OFFLINE_FLAG=? and (pcse1_0.USER_SESSION_ID in (?...?) or pcse1_0.USER_SESSION_ID in (?...?) or pcse1_0.USER_SESSION_ID in (?...?) or pcse1_0.USER_SESSION_ID in (?...?))] [n/a]: com.microsoft.sqlserver.jdbc.SQLServerException: The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1695)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:648)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:567)
keycloak-1 | at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7675)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4137)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:272)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:246)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:485)
keycloak-1 | at io.agroal.pool.wrapper.PreparedStatementWrapper.executeQuery(PreparedStatementWrapper.java:80)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:246)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.getResultSet(DeferredResultSetAccess.java:167)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext(JdbcValuesResultSetImpl.java:218)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext(JdbcValuesResultSetImpl.java:98)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next(AbstractJdbcValues.java:19)
keycloak-1 | at org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next(RowProcessingStateStandardImpl.java:66)
keycloak-1 | at org.hibernate.internal.ScrollableResultsImpl.next(ScrollableResultsImpl.java:51)
keycloak-1 | at org.hibernate.query.internal.ScrollableResultsIterator.hasNext(ScrollableResultsIterator.java:33)
keycloak-1 | at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132)
keycloak-1 | at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
keycloak-1 | at org.keycloak.utils.ClosingStream.forEach(ClosingStream.java:128)
keycloak-1 | at org.keycloak.models.jpa.session.JpaUserSessionPersisterProvider.loadUserSessionsWithClientSessions(JpaUserSessionPersisterProvider.java:498)
keycloak-1 | at org.keycloak.models.jpa.session.JpaUserSessionPersisterProvider.loadUserSessionsStream(JpaUserSessionPersisterProvider.java:405)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:346)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:409)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:403)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:398)
keycloak-1 | at org.keycloak.admin.ui.rest.SessionsResource.lambda$realmSessions$4(SessionsResource.java:80)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
keycloak-1 | at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
keycloak-1 | at java.base/java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:723)
keycloak-1 | at java.base/java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:720)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
keycloak-1 | at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
keycloak-1 | at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline.forEachOrdered(ReferencePipeline.java:601)
keycloak-1 | at com.fasterxml.jackson.datatype.jdk8.StreamSerializer.serialize(StreamSerializer.java:71)
keycloak-1 | at com.fasterxml.jackson.datatype.jdk8.StreamSerializer.serialize(StreamSerializer.java:15)
keycloak-1 | at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:502)
keycloak-1 | at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:341)
keycloak-1 | at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1574)
keycloak-1 | at com.fasterxml.jackson.databind.ObjectWriter._writeValueAndClose(ObjectWriter.java:1275)
keycloak-1 | at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1098)
keycloak-1 | at io.quarkus.resteasy.reactive.jackson.runtime.serialisers.FullyFeaturedServerJacksonMessageBodyWriter.writeResponse(FullyFeaturedServerJacksonMessageBodyWriter.java:79)
keycloak-1 | at org.jboss.resteasy.reactive.server.core.ServerSerialisers.invokeWriter(ServerSerialisers.java:216)
keycloak-1 | at org.jboss.resteasy.reactive.server.core.ServerSerialisers.invokeWriter(ServerSerialisers.java:184)
keycloak-1 | at org.jboss.resteasy.reactive.server.core.serialization.FixedEntityWriter.write(FixedEntityWriter.java:28)
keycloak-1 | at org.jboss.resteasy.reactive.server.handlers.ResponseWriterHandler.handle(ResponseWriterHandler.java:34)
keycloak-1 | at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:147)
keycloak-1 | at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
keycloak-1 | at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)
keycloak-1 | at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
keycloak-1 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
keycloak-1 | at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
keycloak-1 | at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
keycloak-1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
keycloak-1 | at java.base/java.lang.Thread.run(Thread.java:1583)
keycloak-1 |
keycloak-1 | 2024-08-15 13:57:24,295 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (executor-thread-5) SQL Error: 8003, SQLState: S0001
keycloak-1 | 2024-08-15 13:57:24,295 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (executor-thread-5) The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
keycloak-1 | Caused by: org.hibernate.exception.SQLGrammarException: JDBC exception executing SQL [select pcse1_0.CLIENT_ID,pcse1_0.CLIENT_STORAGE_PROVIDER,pcse1_0.EXTERNAL_CLIENT_ID,pcse1_0.OFFLINE_FLAG,pcse1_0.USER_SESSION_ID,pcse1_0.DATA,pcse1_0.TIMESTAMP,pcse1_0.version from dbo.OFFLINE_CLIENT_SESSION pcse1_0 where pcse1_0.OFFLINE_FLAG=? and (pcse1_0.USER_SESSION_ID in (?...?) or pcse1_0.USER_SESSION_ID in (?...?) or pcse1_0.USER_SESSION_ID in (?...?) or pcse1_0.USER_SESSION_ID in (?,?...?,?...?,?...?,?...?,?...?,?...?,?...?,?...?,?...?,?...?,?...?,?...?,?...?,?...?,?...?...?))] [The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.] [n/a]
keycloak-1 | at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
keycloak-1 | at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
keycloak-1 | at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
keycloak-1 | at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:264)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.getResultSet(DeferredResultSetAccess.java:167)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext(JdbcValuesResultSetImpl.java:218)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext(JdbcValuesResultSetImpl.java:98)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next(AbstractJdbcValues.java:19)
keycloak-1 | at org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next(RowProcessingStateStandardImpl.java:66)
keycloak-1 | at org.hibernate.internal.ScrollableResultsImpl.next(ScrollableResultsImpl.java:51)
keycloak-1 | at org.hibernate.query.internal.ScrollableResultsIterator.hasNext(ScrollableResultsIterator.java:33)
keycloak-1 | at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132)
keycloak-1 | at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
keycloak-1 | at org.keycloak.utils.ClosingStream.forEach(ClosingStream.java:128)
keycloak-1 | at org.keycloak.models.jpa.session.JpaUserSessionPersisterProvider.loadUserSessionsWithClientSessions(JpaUserSessionPersisterProvider.java:498)
keycloak-1 | at org.keycloak.models.jpa.session.JpaUserSessionPersisterProvider.loadUserSessionsStream(JpaUserSessionPersisterProvider.java:405)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:346)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:409)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:403)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:398)
keycloak-1 | at org.keycloak.admin.ui.rest.SessionsResource.lambda$realmSessions$4(SessionsResource.java:80)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
keycloak-1 | at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
keycloak-1 | at java.base/java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:723)
keycloak-1 | at java.base/java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:720)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
keycloak-1 | at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
keycloak-1 | at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline.forEachOrdered(ReferencePipeline.java:601)
keycloak-1 | at com.fasterxml.jackson.datatype.jdk8.StreamSerializer.serialize(StreamSerializer.java:71)
keycloak-1 | at com.fasterxml.jackson.datatype.jdk8.StreamSerializer.serialize(StreamSerializer.java:15)
keycloak-1 | at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:502)
keycloak-1 | ... 18 more
keycloak-1 | Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1695)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:648)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:567)
keycloak-1 | at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7675)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4137)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:272)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:246)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:485)
keycloak-1 | at io.agroal.pool.wrapper.PreparedStatementWrapper.executeQuery(PreparedStatementWrapper.java:80)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:246)
keycloak-1 | ... 51 more
keycloak-1 |
keycloak-1 | 2024-08-15 13:57:24,352 DEBUG [org.keycloak.services.error.KeycloakErrorHandler] (executor-thread-5) Error response 400: com.fasterxml.jackson.databind.JsonMappingException: JDBC exception executing SQL [select pcse1_0.CLIENT_ID,pcse1_0.CLIENT_STORAGE_PROVIDER,pcse1_0.EXTERNAL_CLIENT_ID,pcse1_0.OFFLINE_FLAG,pcse1_0.USER_SESSION_ID,pcse1_0.DATA,pcse1_0.TIMESTAMP,pcse1_0.version from dbo.OFFLINE_CLIENT_SESSION pcse1_0 where pcse1_0.OFFLINE_FLAG=? and (pcse1_0.USER_SESSION_ID in (?,…,?) or pcse1_0.USER_SESSION_ID in (?,…,?) or pcse1_0.USER_SESSION_ID in (?,…,?) or pcse1_0.USER_SESSION_ID in (?,…,?))] [The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.] [n/a]
keycloak-1 | at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._wrapAsIOE(DefaultSerializerProvider.java:531)
keycloak-1 | at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:504)
keycloak-1 | at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:341)
keycloak-1 | at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1574)
keycloak-1 | at com.fasterxml.jackson.databind.ObjectWriter._writeValueAndClose(ObjectWriter.java:1275)
keycloak-1 | at com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1098)
keycloak-1 | at io.quarkus.resteasy.reactive.jackson.runtime.serialisers.FullyFeaturedServerJacksonMessageBodyWriter.writeResponse(FullyFeaturedServerJacksonMessageBodyWriter.java:79)
keycloak-1 | at org.jboss.resteasy.reactive.server.core.ServerSerialisers.invokeWriter(ServerSerialisers.java:216)
keycloak-1 | at org.jboss.resteasy.reactive.server.core.ServerSerialisers.invokeWriter(ServerSerialisers.java:184)
keycloak-1 | at org.jboss.resteasy.reactive.server.core.serialization.FixedEntityWriter.write(FixedEntityWriter.java:28)
keycloak-1 | at org.jboss.resteasy.reactive.server.handlers.ResponseWriterHandler.handle(ResponseWriterHandler.java:34)
keycloak-1 | at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:147)
keycloak-1 | at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
keycloak-1 | at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:582)
keycloak-1 | at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2513)
keycloak-1 | at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1538)
keycloak-1 | at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:29)
keycloak-1 | at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:29)
keycloak-1 | at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
keycloak-1 | at java.base/java.lang.Thread.run(Thread.java:1583)
keycloak-1 | Caused by: org.hibernate.exception.SQLGrammarException: JDBC exception executing SQL [select pcse1_0.CLIENT_ID,pcse1_0.CLIENT_STORAGE_PROVIDER,pcse1_0.EXTERNAL_CLIENT_ID,pcse1_0.OFFLINE_FLAG,pcse1_0.USER_SESSION_ID,pcse1_0.DATA,pcse1_0.TIMESTAMP,pcse1_0.version from dbo.OFFLINE_CLIENT_SESSION pcse1_0 where pcse1_0.OFFLINE_FLAG=? and (pcse1_0.USER_SESSION_ID in (?,…,?) or pcse1_0.USER_SESSION_ID in (?,…,?) or pcse1_0.USER_SESSION_ID in (?,…,?) or pcse1_0.USER_SESSION_ID in (?,...,?))] [The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.] [n/a]
keycloak-1 | at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:91)
keycloak-1 | at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58)
keycloak-1 | at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108)
keycloak-1 | at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:264)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.getResultSet(DeferredResultSetAccess.java:167)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.advanceNext(JdbcValuesResultSetImpl.java:218)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.JdbcValuesResultSetImpl.processNext(JdbcValuesResultSetImpl.java:98)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.AbstractJdbcValues.next(AbstractJdbcValues.java:19)
keycloak-1 | at org.hibernate.sql.results.internal.RowProcessingStateStandardImpl.next(RowProcessingStateStandardImpl.java:66)
keycloak-1 | at org.hibernate.internal.ScrollableResultsImpl.next(ScrollableResultsImpl.java:51)
keycloak-1 | at org.hibernate.query.internal.ScrollableResultsIterator.hasNext(ScrollableResultsIterator.java:33)
keycloak-1 | at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132)
keycloak-1 | at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1939)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
keycloak-1 | at org.keycloak.utils.ClosingStream.forEach(ClosingStream.java:128)
keycloak-1 | at org.keycloak.models.jpa.session.JpaUserSessionPersisterProvider.loadUserSessionsWithClientSessions(JpaUserSessionPersisterProvider.java:498)
keycloak-1 | at org.keycloak.models.jpa.session.JpaUserSessionPersisterProvider.loadUserSessionsStream(JpaUserSessionPersisterProvider.java:405)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:346)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:409)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:403)
keycloak-1 | at org.keycloak.models.sessions.infinispan.PersistentUserSessionProvider.getUserSessionsStream(PersistentUserSessionProvider.java:398)
keycloak-1 | at org.keycloak.admin.ui.rest.SessionsResource.lambda$realmSessions$4(SessionsResource.java:80)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
keycloak-1 | at java.base/java.util.stream.StreamSpliterators$WrappingSpliterator.tryAdvance(StreamSpliterators.java:300)
keycloak-1 | at java.base/java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:723)
keycloak-1 | at java.base/java.util.stream.Streams$ConcatSpliterator.tryAdvance(Streams.java:720)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:129)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:527)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:513)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
keycloak-1 | at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
keycloak-1 | at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
keycloak-1 | at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
keycloak-1 | at java.base/java.util.stream.ReferencePipeline.forEachOrdered(ReferencePipeline.java:601)
keycloak-1 | at com.fasterxml.jackson.datatype.jdk8.StreamSerializer.serialize(StreamSerializer.java:71)
keycloak-1 | at com.fasterxml.jackson.datatype.jdk8.StreamSerializer.serialize(StreamSerializer.java:15)
keycloak-1 | at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:502)
keycloak-1 | ... 18 more
keycloak-1 | Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The incoming request has too many parameters. The server supports a maximum of 2100 parameters. Reduce the number of parameters and resend the request.
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:259)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1695)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:648)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:567)
keycloak-1 | at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7675)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:4137)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:272)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:246)
keycloak-1 | at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:485)
keycloak-1 | at io.agroal.pool.wrapper.PreparedStatementWrapper.executeQuery(PreparedStatementWrapper.java:80)
keycloak-1 | at org.hibernate.sql.results.jdbc.internal.DeferredResultSetAccess.executeQuery(DeferredResultSetAccess.java:246)
keycloak-1 | ... 51 more
keycloak-1 |