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

Email subscription triggers search issue in non-Jira thread without JiraThreadLocalUtil/OffRequestThreadExecutor

    XMLWordPrintable

Details

    Description

      Issue Summary

      We have an email subscription that is not working and throwing the error below.

      Steps to Reproduce

      1. Configure a mail subscription

      Expected Results

      The email subscriptions should be sent as expected

      Actual Results

      2020-05-08 22:28:33,222-0400 ERROR [] Sending mailitem com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem owner: 'user(user)' anonymous     Error occurred in sending e-mail: com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem owner: 'user(user)'
      com.atlassian.mail.MailException: java.lang.IllegalStateException: Incorrect usage of JIRA/lucene search API. You can only create/use: ManagedIndexSearcher inside a context (request or Jira-Thread-Local). Check: JiraThreadLocalUtils for details.
      	at com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem.send(SubscriptionSingleRecepientMailQueueItem.java:106) [classes/:?]
      	at com.atlassian.mail.queue.MailQueueImpl.sendBufferUnderLock(MailQueueImpl.java:103) [atlassian-mail-5.0.0.jar:?]
      	at com.atlassian.mail.queue.MailQueueImpl.sendBuffer(MailQueueImpl.java:56) [atlassian-mail-5.0.0.jar:?]
      	at com.atlassian.jira.mail.JiraMailQueue$1.apply(JiraMailQueue.java:51) [classes/:?]
      	at com.atlassian.jira.mail.JiraMailQueue$1.apply(JiraMailQueue.java:48) [classes/:?]
      	at com.atlassian.jira.util.velocity.DefaultVelocityRequestContextFactory.runWithStaticBaseUrl(DefaultVelocityRequestContextFactory.java:110) [classes/:?]
      	at com.atlassian.jira.util.DefaultBaseUrl.runWithStaticBaseUrl(DefaultBaseUrl.java:56) [classes/:?]
      	at com.atlassian.jira.mail.JiraMailQueue.sendBuffer(JiraMailQueue.java:48) [classes/:?]
      	at java.util.Optional.ifPresent(Unknown Source) [?:1.8.0_171]
      	at com.atlassian.jira.startup.DefaultJiraLauncher.stop(DefaultJiraLauncher.java:197) [classes/:?]
      	at com.atlassian.jira.startup.LauncherContextListener.contextDestroyed(LauncherContextListener.java:211) [classes/:?]
      	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4817) [catalina.jar:8.5.42]
      	at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5474) [catalina.jar:8.5.42]
      	at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:226) [catalina.jar:8.5.42]
      	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1439) [catalina.jar:8.5.42]
      	at org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1428) [catalina.jar:8.5.42]
      	at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_171]
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_171]
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_171]
      	at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]
      Caused by: java.lang.IllegalStateException: Incorrect usage of JIRA/lucene search API. You can only create/use: ManagedIndexSearcher inside a context (request or Jira-Thread-Local). Check: JiraThreadLocalUtils for details.
      	at com.atlassian.jira.index.ManagedIndexSearcherFactory.createFrom(ManagedIndexSearcherFactory.java:15) [classes/:?]
      	at com.atlassian.jira.issue.index.ThreadLocalSearcherCache$Cache.retrieveEntitySearcher(ThreadLocalSearcherCache.java:142) [classes/:?]
      	at com.atlassian.jira.issue.index.ThreadLocalSearcherCache.getSearcher(ThreadLocalSearcherCache.java:40) [classes/:?]
      	at com.atlassian.jira.issue.index.DefaultIndexManager.getEntitySearcher(DefaultIndexManager.java:888) [classes/:?]
      	at com.atlassian.jira.issue.index.DefaultIndexManager.getChangeHistorySearcher(DefaultIndexManager.java:875) [classes/:?]
      	at sun.reflect.GeneratedMethodAccessor1369.invoke(Unknown Source) [?:?]
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.8.0_171]
      	at java.lang.reflect.Method.invoke(Unknown Source) [?:1.8.0_171]
      	at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:38) [classes/:?]
      	at com.sun.proxy.$Proxy11.getChangeHistorySearcher(Unknown Source) [?:?]
      	at com.atlassian.jira.issue.search.SearchProviderFactoryImpl.getSearcher(SearchProviderFactoryImpl.java:21) [classes/:?]
      	at com.atlassian.jira.jql.query.ChangedClauseQueryFactory.create(ChangedClauseQueryFactory.java:52) [classes/:?]
      	at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:121) [classes/:?]
      	at com.atlassian.jira.jql.query.ContextAwareQueryVisitor.visit(ContextAwareQueryVisitor.java:27) [classes/:?]
      	at com.atlassian.query.clause.ChangedClauseImpl.accept(ChangedClauseImpl.java:64) [classes/:?]
      	at com.atlassian.jira.jql.query.QueryVisitor.createQuery(QueryVisitor.java:51) [classes/:?]
      	at com.atlassian.jira.jql.query.DefaultLuceneQueryBuilder.createLuceneQuery(DefaultLuceneQueryBuilder.java:29) [classes/:?]
      	at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.createLuceneQuery(LuceneSearchProvider.java:331) [classes/:?]
      	at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.getHits(LuceneSearchProvider.java:216) [classes/:?]
      	at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:362) [classes/:?]
      	at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:135) [classes/:?]
      	at com.atlassian.jira.issue.search.providers.LuceneSearchProvider.search(LuceneSearchProvider.java:140) [classes/:?]
      	at com.atlassian.jira.bc.issue.search.DefaultSearchService.search(DefaultSearchService.java:118) [classes/:?]
      	at com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem.getContextParams(SubscriptionSingleRecepientMailQueueItem.java:242) [classes/:?]
      	at com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem.sendSearchRequestEmail(SubscriptionSingleRecepientMailQueueItem.java:118) [classes/:?]
      	at com.atlassian.jira.mail.SubscriptionSingleRecepientMailQueueItem.send(SubscriptionSingleRecepientMailQueueItem.java:103) [classes/:?]
      	... 19 more
      

      Workaround

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

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              dsenger Deyves (Inactive)
              Votes:
              8 Vote for this issue
              Watchers:
              16 Start watching this issue

              Dates

                Created:
                Updated: