Having many users in EPP IDM causes root user login to take too long
Issue
While testing with 30 groups and ~3000 users who can be a member of any amount of these groups, there were no speed issues to speak of, but after increasing the user count to 60.000, logging in as root user suddenly takes as long as 20 minutes.
Inspecting a captured thread dump shows that the cause for the slowness is the call to org.exoplatform.services.organization.idm.GroupDAOImpl.getAllGroups, which apparently takes a long time:
java.lang.Class.getInterfaces(Native Method)
org.hibernate.intercept.FieldInterceptionHelper.isInstrumented(FieldInterceptionHelper.java:51)
org.hibernate.intercept.FieldInterceptionHelper.isInstrumented(FieldInterceptionHelper.java:62)
org.hibernate.engine.EntityEntry.requiresDirtyCheck(EntityEntry.java:259)
org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:141)
org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:58)
org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:999)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1185)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
org.picketlink.idm.impl.store.hibernate.HibernateIdentityStoreImpl.findIdentityObject(HibernateIdentityStoreImpl.java:889)
org.picketlink.idm.impl.repository.WrapperIdentityStoreRepository.findIdentityObject(WrapperIdentityStoreRepository.java:226)
org.picketlink.idm.impl.api.session.managers.RelationshipManagerImpl.findAssociatedGroups(RelationshipManagerImpl.java:946)
org.picketlink.idm.impl.api.session.managers.RelationshipManagerImpl.findAssociatedGroupsCascaded(RelationshipManagerImpl.java:861)
org.picketlink.idm.impl.api.session.managers.RelationshipManagerImpl.findAssociatedGroupsCascaded(RelationshipManagerImpl.java:876)
org.picketlink.idm.impl.api.session.managers.RelationshipManagerImpl.findAssociatedGroupsCascaded(RelationshipManagerImpl.java:876)
org.picketlink.idm.impl.api.session.managers.RelationshipManagerImpl.findAssociatedGroupsCascaded(RelationshipManagerImpl.java:876)
org.picketlink.idm.impl.api.session.managers.RelationshipManagerImpl.findAssociatedGroups(RelationshipManagerImpl.java:926)
org.picketlink.idm.impl.api.session.managers.RelationshipManagerImpl.findAssociatedGroups(RelationshipManagerImpl.java:1006)
org.exoplatform.services.organization.idm.GroupDAOImpl.getAllGroups(GroupDAOImpl.java:680)
Environment
- JBoss Enterprise Portal Platform (EPP)
- 5.2.1
- 5.2.2
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.