Invalid use of RequestCache by thread: pool-<N>-thread

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: Low
    • None
    • Affects Version/s: 10.3.22
    • Component/s: Data Center - Other
    • None
    • 10.03
    • 1
    • Severity 3 - Minor

      Issue Summary

      See JRASERVER-72963#comment-3059444 for more details.

      Note: There is a whole family of "Invalid use of RequestCache by thread..." issues, one per thread. Find the one you need or file a new one.

      Steps to Reproduce

      Exact steps are unknown. Start Jira and after some time this error might be logged.

      Expected Results

      RequestCache is used inside a context and no error is logged.

      Actual Results

      RequestCache is used outside of a context, which risks an incorrect cache behaviour.

      The following error appears in atlassian-jira.log file:

       

      pool-40-thread-159 ERROR      [jira.cache.request.RequestCacheRecorderImpl]  Invalid use of RequestCache by thread/stack: pool-40-thread--k1ezbs. Incorrect usage of JIRA API. You can only create/use: RequestCacheImpl inside a context (request or Jira-Thread-Local). Check JiraThreadLocalUtil and http://go/j/JRASERVER-72963 for details. This message will be logged once per thread/stacktrace. This ERROR should be fixed on the caller side (check the stack-trace or thread-name) as it is causing inconsistent data.com.atlassian.jira.cache.request.RequestCacheRecorderImpl$StackCollector: Stack trace of invalid RequestCache usage	at com.atlassian.jira.cache.request.RequestCacheRecorderImpl$ExceptionPoint.errorLogOOCThreadUsage(RequestCacheRecorderImpl.java:56) ~[classes/:?]	at com.atlassian.jira.cache.request.RequestCacheRecorderImpl.recordRequestCacheOOCUsage(RequestCacheRecorderImpl.java:125) ~[classes/:?]	at com.atlassian.jira.cache.request.RequestCacheImpl.get(RequestCacheImpl.java:46) ~[classes/:?]	at com.atlassian.jira.security.DefaultGlobalPermissionManager.hasPermissionIgnoreRecovery(DefaultGlobalPermissionManager.java:346) ~[classes/:?]	at com.atlassian.jira.security.DefaultGlobalPermissionManager.hasPermission(DefaultGlobalPermissionManager.java:297) ~[classes/:?]	at com.atlassian.jira.security.ApplicationRequiredPermissionManager.shouldUserHaveAccess(ApplicationRequiredPermissionManager.java:214) ~[classes/:?]	at com.atlassian.jira.security.ApplicationRequiredPermissionManager.checkUserHasApplicationOrFalse(ApplicationRequiredPermissionManager.java:189) ~[classes/:?]	at com.atlassian.jira.security.ApplicationRequiredPermissionManager.checkUserHasApplicationOrFalse(ApplicationRequiredPermissionManager.java:183) ~[classes/:?]	at com.atlassian.jira.security.ApplicationRequiredPermissionManager.hasPermission(ApplicationRequiredPermissionManager.java:80) ~[classes/:?]	at com.atlassian.jira.security.PublicAccessPermissionManager.lambda$hasPermission$0(PublicAccessPermissionManager.java:75) ~[classes/:?]	at com.atlassian.jira.security.PublicAccessPermissionManager.checkPublicAccessEnabledOrDelegate(PublicAccessPermissionManager.java:179) ~[classes/:?]	at com.atlassian.jira.security.PublicAccessPermissionManager.hasPermission(PublicAccessPermissionManager.java:75) ~[classes/:?]	at jdk.internal.reflect.GeneratedMethodAccessor1422.invoke(Unknown Source) ~[?:?]	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]	at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:38) ~[classes/:?]	at jdk.proxy3.$Proxy76.hasPermission(Unknown Source) ~[?:?]	at com.atlassian.jira.issue.fields.renderer.wiki.links.JiraIssueLink.canCurrentUserSeeIssue(JiraIssueLink.java:66) ~[classes/:?]	at com.atlassian.jira.issue.fields.renderer.wiki.links.JiraIssueLink.setupIssueLink(JiraIssueLink.java:38) ~[classes/:?]	at com.atlassian.jira.issue.fields.renderer.wiki.links.JiraIssueLink.<init>(JiraIssueLink.java:29) ~[classes/:?]	at com.atlassian.jira.issue.fields.renderer.wiki.resolvers.JiraIssueLinkResolver.createContentLink(JiraIssueLinkResolver.java:18) ~[classes/:?]	at com.atlassian.jira.issue.fields.renderer.wiki.links.JiraLinkResolver.createLink(JiraLinkResolver.java:57) ~[classes/:?]	at com.atlassian.renderer.v2.components.LinkRendererComponent.appendLink(LinkRendererComponent.java:105) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.renderer.v2.components.LinkRendererComponent.renderHeavy(LinkRendererComponent.java:88) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.renderer.v2.components.LinkRendererComponent.render(LinkRendererComponent.java:59) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.renderer.v2.V2Renderer.render(V2Renderer.java:45) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.renderer.v2.V2SubRenderer.render(V2SubRenderer.java:36) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.renderer.v2.components.block.BlockRendererComponent.renderParagraph(BlockRendererComponent.java:196) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.renderer.v2.components.block.BlockRendererComponent.flushParagraph(BlockRendererComponent.java:191) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.renderer.v2.components.block.BlockRendererComponent.render(BlockRendererComponent.java:108) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.renderer.v2.V2Renderer.render(V2Renderer.java:45) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.renderer.v2.TokenEscapingV2Renderer.render(TokenEscapingV2Renderer.java:28) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.renderer.v2.V2RendererFacade.convertWikiToXHtml(V2RendererFacade.java:87) ~[atlassian-renderer-9.0.3.jar:?]	at com.atlassian.jira.issue.fields.renderer.wiki.AtlassianWikiRenderer.render(AtlassianWikiRenderer.java:58) ~[classes/:?]	at com.atlassian.jira.issue.managers.DefaultRendererManager.getRenderedContent(DefaultRendererManager.java:95) ~[classes/:?]	at jdk.internal.reflect.GeneratedMethodAccessor1753.invoke(Unknown Source) ~[?:?]	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26) ~[atlassian-plugins-core-8.1.8.jar:?]	at jdk.proxy3.$Proxy414.getRenderedContent(Unknown Source) ~[?:?]	at jdk.internal.reflect.GeneratedMethodAccessor1753.invoke(Unknown Source) ~[?:?]	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]	at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvocationHandler.invoke(HostComponentFactoryBean.java:134) ~[?:?]	at jdk.proxy3.$Proxy414.getRenderedContent(Unknown Source) ~[?:?]	at com.atlassian.mywork.providers.jira.JiraEventListener.renderComment(JiraEventListener.java:344) ~[?:?]	at com.atlassian.mywork.providers.jira.JiraEventListener.commentedOnItem(JiraEventListener.java:325) ~[?:?]	at com.atlassian.mywork.providers.jira.JiraEventListener.lambda$new$1(JiraEventListener.java:67) ~[?:?]	at com.atlassian.mywork.providers.jira.JiraEventListener.lambda$onIssueEvent$3(JiraEventListener.java:163) ~[?:?]	at com.atlassian.mywork.providers.jira.JiraEventListener.lambda$handleEventWithTargetServiceCheck$6(JiraEventListener.java:188) ~[?:?]	at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:?]	at java.util.concurrent.FutureTask.run(Unknown Source) [?:?]	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?]	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?]	at java.lang.Thread.run(Unknown Source) [?:?] 

       

      Workaround

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

              Assignee:
              Unassigned
              Reporter:
              Ankit Pruthi
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: