Uploaded image for project: 'Jira Data Center'
  1. Jira 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

              Unassigned Unassigned
              rrosa@atlassian.com Rodrigo Rosa
              Votes:
              16 Vote for this issue
              Watchers:
              41 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: