Hello!
This error occurs when trying to synchronize users created in Active Directory with Keycloak. Keycloak version 20.0.3, Windows Server 2012 R2
2025-02-13 15:14:05,857 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012108: CheckedAction::check - atomic action 0:ffff0a960c0d:b397:67adc162:3061 aborting with 1 threads active!
2025-02-13 15:14:05,858 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Timer-0) SQL Error: 0, SQLState: null
2025-02-13 15:14:05,858 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Timer-0) ResultSet is closed
2025-02-13 15:14:05,858 WARN [com.arjuna.ats.arjuna] (Timer-0) ARJUNA012077: Abort called on already aborted atomic action 0:ffff0a960c0d:b397:67adc162:3061
2025-02-13 15:14:05,858 WARN [org.hibernate.resource.transaction.backend.jta.internal.synchronization.SynchronizationCallbackCoordinatorTrackingImpl] (Transaction Reaper Worker 0) HHH000451: Transaction afterCompletion called by a background thread; delaying afterCompletion processing until the original thread can handle it. [status=4]
2025-02-13 15:14:05,858 WARN [com.arjuna.ats.arjuna] (Transaction Reaper Worker 0) ARJUNA012121: TransactionReaper::doCancellations worker Thread[Transaction Reaper Worker 0,5,main] successfully canceled TX 0:ffff0a960c0d:b397:67adc162:3061
2025-02-13 15:14:05,877 WARN [com.arjuna.ats.arjuna] (Timer-0) ARJUNA012077: Abort called on already aborted atomic action 0:ffff0a960c0d:b397:67adc162:305a
2025-02-13 15:14:05,877 ERROR [org.keycloak.storage.managers.UserStorageSyncManager] (Timer-0) Error occurred during sync of changed users: org.hibernate.exception.GenericJDBCException: could not advance using next()
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99)
at org.hibernate.internal.ScrollableResultsImpl.convert(ScrollableResultsImpl.java:71)
at org.hibernate.internal.ScrollableResultsImpl.next(ScrollableResultsImpl.java:106)
at org.hibernate.query.internal.ScrollableResultsIterator.hasNext(ScrollableResultsIterator.java:33)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at org.hibernate.query.spi.StreamDecorator.collect(StreamDecorator.java:209)
at org.keycloak.utils.ClosingStream.collect(ClosingStream.java:182)
at org.keycloak.models.cache.infinispan.RealmCacheSession.getTopLevelGroupsStream(RealmCacheSession.java:966)
at org.keycloak.models.cache.infinispan.RealmAdapter.getTopLevelGroupsStream(RealmAdapter.java:1467)
at org.keycloak.storage.ldap.mappers.membership.group.GroupLDAPStorageMapper.getKcSubGroups(GroupLDAPStorageMapper.java:810)
at org.keycloak.storage.ldap.mappers.membership.group.GroupLDAPStorageMapper.updateKeycloakGroupTreeEntry(GroupLDAPStorageMapper.java:313)
at org.keycloak.storage.ldap.mappers.membership.group.GroupLDAPStorageMapper.updateKeycloakGroupTree(GroupLDAPStorageMapper.java:300)
at org.keycloak.storage.ldap.mappers.membership.group.GroupLDAPStorageMapper.syncDataFromFederationProviderToKeycloak(GroupLDAPStorageMapper.java:185)
at org.keycloak.storage.ldap.LDAPStorageProviderFactory$1.lambda$run$0(LDAPStorageProviderFactory.java:521)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658)
at org.keycloak.storage.ldap.LDAPStorageProviderFactory$1.run(LDAPStorageProviderFactory.java:519)
at org.keycloak.models.utils.KeycloakModelUtils.runJobInTransaction(KeycloakModelUtils.java:260)
at org.keycloak.storage.ldap.LDAPStorageProviderFactory.syncMappers(LDAPStorageProviderFactory.java:511)
at org.keycloak.storage.ldap.LDAPStorageProviderFactory.syncSince(LDAPStorageProviderFactory.java:491)
at org.keycloak.storage.managers.UserStorageSyncManager$3$1.call(UserStorageSyncManager.java:151)
at org.keycloak.storage.managers.UserStorageSyncManager$3$1.call(UserStorageSyncManager.java:144)
at org.keycloak.cluster.infinispan.InfinispanClusterProvider.executeIfNotExecuted(InfinispanClusterProvider.java:78)
at org.keycloak.storage.managers.UserStorageSyncManager$3.run(UserStorageSyncManager.java:144)
at org.keycloak.models.utils.KeycloakModelUtils.runJobInTransaction(KeycloakModelUtils.java:260)
at org.keycloak.storage.managers.UserStorageSyncManager.syncChangedUsers(UserStorageSyncManager.java:134)
at org.keycloak.storage.managers.UserStorageSyncManager$5.run(UserStorageSyncManager.java:229)
at org.keycloak.timer.basic.BasicTimerProvider$1.run(BasicTimerProvider.java:53)
at java.base/java.util.TimerThread.mainLoop(Timer.java:556)
at java.base/java.util.TimerThread.run(Timer.java:506)
Caused by: java.sql.SQLException: ResultSet is closed
at io.agroal.pool.wrapper.ResultSetWrapper$1.invoke(ResultSetWrapper.java:52)
at com.sun.proxy.$Proxy84.next(Unknown Source)
at io.agroal.pool.wrapper.ResultSetWrapper.next(ResultSetWrapper.java:88)
at org.hibernate.internal.ScrollableResultsImpl.next(ScrollableResultsImpl.java:101)
... 33 more
Also in Keycloak UI when clicking in the User federation settings
the action button → Sync changed users/Sync all users the message “Synchronization ignored as it’s already in progress.” appears.