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

User count cache queries itself during loading

    XMLWordPrintable

Details

    Description

      NOTE: This bug report is for JIRA Server. Using JIRA Cloud? See the corresponding bug report.

      The potential exists for DefaultApplicationRoleManager's user count cache to enter itself while loading an entry. This can lead to problems with deadlocks. The revelant parts of the stack trace are reproduced below.

      "http-nio-2996-exec-14" #198 daemon prio=5 os_prio=0 tid=0x0a8ac800 nid=0x1d6 waiting on condition [0x4fa5a000]
         java.lang.Thread.State: WAITING (parking)
      	at sun.misc.Unsafe.park(Native Method)
      	- parking to wait for  <0x889676b8> (a com.google.common.util.concurrent.AbstractFuture$Sync)
      	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
      ...
      	at com.atlassian.jira.application.DefaultApplicationRoleManager.getUserCount(DefaultApplicationRoleManager.java:409)
      	at com.atlassian.jira.application.DefaultApplicationRoleManager.isRoleLimitExceeded(DefaultApplicationRoleManager.java:260)
      	at com.atlassian.jira.application.DefaultApplicationRoleManager$ActiveUserCountLoader.lambda$countCoreUsers$1(DefaultApplicationRoleManager.java:744)
      	at com.atlassian.jira.application.DefaultApplicationRoleManager$ActiveUserCountLoader$$Lambda$519/10282034.test(Unknown Source)
      ...
      	at com.atlassian.jira.application.DefaultApplicationRoleManager$ActiveUserCountLoader.countCoreUsers(DefaultApplicationRoleManager.java:747)
      	at com.atlassian.jira.application.DefaultApplicationRoleManager$ActiveUserCountLoader.countApplicationUsers(DefaultApplicationRoleManager.java:713)
      	at com.atlassian.jira.application.DefaultApplicationRoleManager$ActiveUserCountLoader.lambda$load$0(DefaultApplicationRoleManager.java:705)
      	at com.atlassian.jira.application.DefaultApplicationRoleManager$ActiveUserCountLoader$$Lambda$518/24388341.apply(Unknown Source)
      	at com.atlassian.fugue.Option.map(Option.java:272)
      	at com.atlassian.jira.application.DefaultApplicationRoleManager$ActiveUserCountLoader.load(DefaultApplicationRoleManager.java:705)
      	at com.atlassian.jira.application.DefaultApplicationRoleManager$ActiveUserCountLoader.load(DefaultApplicationRoleManager.java:701)
      ...
      	at com.atlassian.jira.application.DefaultApplicationRoleManager.getUserCount(DefaultApplicationRoleManager.java:409)
      

      Attachments

        Issue Links

          Activity

            People

              mwyrzykowski Michal Wyrzykowski
              rcordova Cordo
              Votes:
              1 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

                Created:
                Updated: