Hi,
It seems that you're trying to update same user by 2 concurrent
transactions, hence there is OptimisticLockException thrown by Hibernate.
On which version are you? We had some cache fixes for user cache in
latest master, but that's related to infinispan cache. You can try with
latest master, but not sure if it helps with the scenario you're testing
as the error is at DB level. Not sure if Keycloak should somehow improve
the support of the scanario when user is updated by 2 transactions at
the same time. Doesn't look like very common thing to me.
Marek
On 17/03/16 11:03, Lohitha Chiranjeewa wrote:
Hi,
We were executing the 'Update User' API call when the following
exception got thrown:
[2016-03-17 07:50:36.0590], DEBUG, org.jboss.resteasy.core.SynchronousDispatcherdefault
task-13 - RESTEASY002315: PathInfo:
/admin/realms/xxxx/users/e503cb04-3080-4e90-a4b4-80adcd46b81c
[2016-03-17 07:50:36.0590], DEBUG,
org.keycloak.services.managers.AuthenticationManagerdefault task-13 - token active -
active:true, issued-at: 1,458,201,036, not-before: 0
[2016-03-17 07:50:36.0590], DEBUG, org.keycloak.services.resources.admin.AdminRootdefault
task-13 - authenticated admin accessfor: superuser
[2016-03-17 07:50:36.0591], DEBUG, org.keycloak.services.resources.Corsdefault task-13 -
No origin returning
[2016-03-17 07:50:36.0636], DEBUG,
org.infinispan.interceptors.InvalidationInterceptordefault task-13 - Cache [localhost]
replicating InvalidateCommand{keys=[e503cb04-3080-4e90-a4b4-80adcd46b81c]}
[2016-03-17 07:50:36.0637], ERROR,
org.keycloak.services.resources.ModelExceptionMapperdefault task-13 -
javax.persistence.OptimisticLockException: Batch update returned unexpected row count from
update [0]; actual row count: 0; expected: 1: org.keycloak.models.ModelException:
javax.persistence.OptimisticLockException: Batch update returned unexpected row count from
update [0]; actual row count: 0; expected: 1
at
org.keycloak.connections.jpa.PersistenceExceptionConverter.convert(PersistenceExceptionConverter.java:61)
at
org.keycloak.connections.jpa.JpaKeycloakTransaction.commit(JpaKeycloakTransaction.java:47)
at
org.keycloak.services.DefaultKeycloakTransactionManager.commit(DefaultKeycloakTransactionManager.java:95)
at
org.keycloak.services.resources.admin.UsersResource.updateUser(UsersResource.java:170)
at sun.reflect.GeneratedMethodAccessor435.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:139)
at
org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:295)
at
org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:249)
at
org.jboss.resteasy.core.ResourceLocatorInvoker.invokeOnTargetObject(ResourceLocatorInvoker.java:138)
at
org.jboss.resteasy.core.ResourceLocatorInvoker.invoke(ResourceLocatorInvoker.java:107)
We're using a clustered Infinispan system as our cache. This error
doesn't get thrown often, nor can we point out a specific scenario.
However, we have now seen this a few times. What could be the reason
for this?
Regards,
Lohitha.
_______________________________________________
keycloak-user mailing list
keycloak-user(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/keycloak-user