User count cache queries itself during loading

XMLWordPrintable

    • 3
    • Severity 2 - Major

      NOTE: This bug report is for JIRA Cloud. Using JIRA Server? 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)
      

              Assignee:
              Unassigned
              Reporter:
              Cordo
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated:
                Resolved: