Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-74934

Filtering users on user management tab takes long time to process

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Medium Medium
    • 10.2.0
    • 8.20.10, 9.4.15, 9.7.1, 9.8.0, 9.12.4
    • None

      Issue Summary

      This is reproducible on Data Center: Yes

      We have about 24000 users in user management. When we clicked the User Management section under Administration, it waited more than 1 minute. After that, the User Management section opens but then we try to filter the Application access type as Jira Software, which is waiting more than 1 minute.

      Steps to Reproduce

      1. Go to user management
      2. Filter users by Application access

      Expected Results

      Users filtered by a given filter will load in a matter of seconds.

      Actual Results

      It can take a very long time to load users. 

      When using other than the All Users option in the Application access filter, Jira goes through the cache on request, meaning it creates SQL query for each user to filter them. 

      The relevant part of the stack trace:

       

      at com.atlassian.jira.user.JiraCrowdService.search(JiraCrowdService.java:47)
          at com.atlassian.jira.security.groups.DefaultGroupManager.getGroupsForUser(DefaultGroupManager.java:393)
          at com.atlassian.jira.security.groups.RequestCachingGroupManager.lambda$new$0(RequestCachingGroupManager.java:43)
          at com.atlassian.jira.security.groups.RequestCachingGroupManager$$Lambda$460/0x00000008007f7840.load(Unknown Source)
          at com.atlassian.jira.cache.request.RequestCacheImpl.get(RequestCacheImpl.java:59)
          at com.atlassian.jira.security.groups.RequestCachingGroupManager.lambda$new$1(RequestCachingGroupManager.java:46)
          at com.atlassian.jira.security.groups.RequestCachingGroupManager$$Lambda$461/0x00000008007f7c40.load(Unknown Source)
          at com.atlassian.jira.cache.request.RequestCacheImpl.get(RequestCacheImpl.java:59)
          at com.atlassian.jira.security.groups.RequestCachingGroupManager.lambda$new$2(RequestCachingGroupManager.java:51)
          at com.atlassian.jira.security.groups.RequestCachingGroupManager$$Lambda$462/0x00000008007f7040.load(Unknown Source)
          at com.atlassian.jira.cache.request.RequestCacheImpl.get(RequestCacheImpl.java:59)
          at com.atlassian.jira.security.groups.RequestCachingGroupManager.isUserInGroup(RequestCachingGroupManager.java:96)
          at com.atlassian.jira.security.groups.RequestCachingGroupManager.isUserInGroup(RequestCachingGroupManager.java:105)
          at com.atlassian.jira.application.DefaultApplicationRoleManager.lambda$userHasRole$21(DefaultApplicationRoleManager.java:875)
          at com.atlassian.jira.application.DefaultApplicationRoleManager$$Lambda$3562/0x0000000803c1b840.test(Unknown Source)
          at java.util.stream.MatchOps$1MatchSink.accept(java.base@11.0.13/Unknown Source)
          at java.util.Spliterators$ArraySpliterator.tryAdvance(java.base@11.0.13/Unknown Source)
          at java.util.stream.ReferencePipeline.forEachWithCancel(java.base@11.0.13/Unknown Source)
          at java.util.stream.AbstractPipeline.copyIntoWithCancel(java.base@11.0.13/Unknown Source)
          at java.util.stream.AbstractPipeline.copyInto(java.base@11.0.13/Unknown Source)
          at java.util.stream.AbstractPipeline.wrapAndCopyInto(java.base@11.0.13/Unknown Source)
          at java.util.stream.MatchOps$MatchOp.evaluateSequential(java.base@11.0.13/Unknown Source)
          at java.util.stream.MatchOps$MatchOp.evaluateSequential(java.base@11.0.13/Unknown Source)
          at java.util.stream.AbstractPipeline.evaluate(java.base@11.0.13/Unknown Source)
          at java.util.stream.ReferencePipeline.anyMatch(java.base@11.0.13/Unknown Source)
          at com.atlassian.jira.application.DefaultApplicationRoleManager.userHasRole(DefaultApplicationRoleManager.java:875)
          at com.atlassian.jira.application.DefaultApplicationRoleManager.lambda$getRolesForUser$11(DefaultApplicationRoleManager.java:453)
          at com.atlassian.jira.application.DefaultApplicationRoleManager$$Lambda$3561/0x0000000803c1b440.test(Unknown Source)
          at java.util.stream.ReferencePipeline$2$1.accept(java.base@11.0.13/Unknown Source)
          at java.util.HashMap$KeySpliterator.forEachRemaining(java.base@11.0.13/Unknown Source)
          at java.util.stream.AbstractPipeline.copyInto(java.base@11.0.13/Unknown Source)
          at java.util.stream.AbstractPipeline.wrapAndCopyInto(java.base@11.0.13/Unknown Source)
          at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(java.base@11.0.13/Unknown Source)
          at java.util.stream.AbstractPipeline.evaluate(java.base@11.0.13/Unknown Source)
          at java.util.stream.ReferencePipeline.collect(java.base@11.0.13/Unknown Source)
          at com.atlassian.jira.application.DefaultApplicationRoleManager.getRolesForUser(DefaultApplicationRoleManager.java:453)
          at com.atlassian.jira.application.DefaultApplicationRoleManager.getOccupiedLicenseRolesForUser(DefaultApplicationRoleManager.java:460)
          at com.atlassian.jira.application.DefaultApplicationRoleManager.userOccupiesRole(DefaultApplicationRoleManager.java:385)
      <CUT>   
       at com.atlassian.jira.web.bean.UserBrowserFilter.includeBasedOnApplicationAccess(UserBrowserFilter.java:203)
      <CUT>
      at com.atlassian.jira.web.bean.UserBrowserFilter.getFilteredUsers(UserBrowserFilter.java:137)
          at com.atlassian.jira.web.action.admin.user.UserBrowser.getBrowsableItems(UserBrowser.java:176)
          at com.atlassian.jira.web.action.admin.user.UserBrowser.doExecute(UserBrowser.java:128) 

       

       

      Workaround

      Currently, there is no known workaround for this behavior. A workaround will be added here when available

              a9ec86424806 Dino Costantini (Inactive)
              c444dcc43512 Bartosz Wiśniewski (Inactive)
              Votes:
              4 Vote for this issue
              Watchers:
              14 Start watching this issue

                Created:
                Updated:
                Resolved: