Description
openedon Jun 29, 2022
When MS is connected to LDAP with an high number of user/orgs (eg. 5k) there is memory overload at application startup.
At startup the GeoStoreInit class does a count on the number of users inside the repository to understand if eventually is needed to fill the repository with some default user
For the LDAP UserDAOImpl the count cause the loading of all the users in a list and then the size() method is called so that the Users are loaded in memory
As we saw the UserGroupDAOImpl is assigning User to UserGroup everitime the UserGroups are retrieve while the UserDAOImpl is loading for each User its UserGroup using the UserGroupDAOImpl.
At startup for the count then we are going to have loaded in memory the whole list of users where each users has a List of UserGroups and each Group has in turn the list of Users to which is assigned causing the issue the client found