Skip to content

java.util.ConcurrentModificationException when process user sessions update #34093

Closed
@IUADE0TB

Description

Before reporting an issue

  • I have read and understood the above terms for submitting issues, and I understand that my issue may be closed without action if I do not follow them.

Area

infinispan

Describe the bug

When restart existing session and process user sessions update with JpaChangesPerformer and persistent sessions feature enabled:

java.util.ConcurrentModificationException
keycloak | at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:988)
keycloak | at org.keycloak.models.sessions.infinispan.changes.JpaChangesPerformer$6$1.clear(JpaChangesPerformer.java:547)
keycloak | at org.keycloak.models.sessions.infinispan.UserSessionAdapter$6.runUpdate(UserSessionAdapter.java:377)
keycloak | at org.keycloak.models.sessions.infinispan.UserSessionAdapter$6.runUpdate(UserSessionAdapter.java:365)
keycloak | at org.keycloak.models.sessions.infinispan.changes.JpaChangesPerformer.lambda$processUserSessionUpdate$6(JpaChangesPerformer.java:689)
keycloak | at java.base/java.lang.Iterable.forEach(Iterable.java:75)
keycloak | at org.keycloak.models.sessions.infinispan.changes.JpaChangesPerformer.processUserSessionUpdate(JpaChangesPerformer.java:688)
keycloak | at org.keycloak.models.sessions.infinispan.changes.JpaChangesPerformer.lambda$registerChange$0(JpaChangesPerformer.java:72)
keycloak | at org.keycloak.models.sessions.infinispan.changes.PersistentUpdate.perform(PersistentUpdate.java:40)
keycloak | at org.keycloak.models.utils.KeycloakModelUtils.lambda$runJobInTransaction$1(KeycloakModelUtils.java:263)
keycloak | at org.keycloak.models.utils.KeycloakModelUtils.runJobInTransactionWithResult(KeycloakModelUtils.java:392)
keycloak | at org.keycloak.models.utils.KeycloakModelUtils.runJobInTransaction(KeycloakModelUtils.java:262)
keycloak | at org.keycloak.models.sessions.infinispan.changes.PersistentSessionsWorker$BatchWorker.lambda$process$2(PersistentSessionsWorker.java:98)
keycloak | at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
keycloak | at org.keycloak.models.sessions.infinispan.changes.PersistentSessionsWorker$BatchWorker.lambda$process$3(PersistentSessionsWorker.java:96)
keycloak | ... 4 more

Version

26.0.0

Regression

  • The issue is a regression

Expected behavior

clear() method of UserSessionEntity in JpaChangesPerformer.processUserSessionUpdate method should be excecuted without exception

Actual behavior

exception is occured

How to Reproduce?

Restart existing session with userSession.restartSession(..) method and persistent sessions feature enabled

Anything else?

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions