Uploaded image for project: 'Jira Server and Data Center'
  1. Jira Server and Data Center
  2. JRASERVER-71316

RequestCache being used in an invalid context

    XMLWordPrintable

    Details

      Description

      Issue Summary

      There's warnings being triggered on the latest Jira versions due to the 'RequestCacheImpl' being used outside of a request thread by 'JMXInstrumentsLoggingService' and 'PlatformInstrumentsLoggingService'. This will not work in the future, so we need to fix it.

      Steps to Reproduce

      1. Install Jira Software 8.10.0 or 8.11.0

      The below exception is thrown in the atlassian-jira.log file:

      2020-07-16 18:21:48,050-0300 PlatformInstrumentsLoggingService RUNNING WARN      [c.a.j.cache.request.RequestCacheImpl] From Jira 9.0 version creation/usage of RequestCacheImpl will throw the IllegalStateException.
      2020-07-16 18:21:48,050-0300 PlatformInstrumentsLoggingService RUNNING WARN      [c.a.j.cache.request.RequestCacheImpl] Incorrect usage of JIRA API. You can only create/use: RequestCacheImpl inside a context (request or Jira-Thread-Local). Check: JiraThreadLocalUtil for details.
      2020-07-16 18:21:48,050-0300 PlatformInstrumentsLoggingService RUNNING WARN      [c.a.j.cache.request.RequestCacheImpl] From Jira 9.0 version creation/usage of RequestCacheImpl will throw the IllegalStateException.
      2020-07-16 18:21:48,109-0300 JMXInstrumentsLoggingService RUNNING WARN      [c.a.j.cache.request.RequestCacheImpl] Incorrect usage of JIRA API. You can only create/use: RequestCacheImpl inside a context (request or Jira-Thread-Local). Check: JiraThreadLocalUtil for details.
      2020-07-16 18:21:48,109-0300 JMXInstrumentsLoggingService RUNNING WARN      [c.a.j.cache.request.RequestCacheImpl] From Jira 9.0 version creation/usage of RequestCacheImpl will throw the IllegalStateException.
      2020-07-16 18:21:48,110-0300 JMXInstrumentsLoggingService RUNNING WARN      [c.a.j.cache.request.RequestCacheImpl] Incorrect usage of JIRA API. You can only create/use: RequestCacheImpl inside a context (request or Jira-Thread-Local). Check: JiraThreadLocalUtil for details.
      

      Workaround

      Setting the log level of the com.atlassian.jira.cache.request.RequestCacheImpl package to ERROR per the documentation Logging and profiling

      This configuration will filter out relevant warnings as well.

      Temporary way to set the package to ERROR (this setting will go away after a Jira restart)

      • In Jira, go to ⚙ > System > Logging and profiling page
      • Scroll down to Default Loggers > Configure logging level for another package, and add com.atlassian.jira.cache.request.RequestCacheImpl package with the ERROR level

      Permanent way to set the package to ERROR (this setting will remain after a Jira restart)

      • Edit the file <JIRA_INSTALLATION>/atlassian-jira/WEB-INF/classes/log4j.properties
      • Add the 2 following lines at the end of the file and save it:
        log4j.logger.com.atlassian.jira.cache.request.RequestCacheImpl = ERROR, filelog
        log4j.additivity.com.atlassian.jira.cache.request.RequestCacheImpl = false
        
      • Restart the Jira application

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              rrosa@atlassian.com Rodrigo Rosa
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: