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

Index optimise on large instances can cause timeouts for some requests

    XMLWordPrintable

Details

    • 75
    • 9
    • We collect Jira feedback from various sources, and we evaluate what we've collected when planning our product roadmap. To understand how this piece of feedback will be reviewed, see our Implementation of New Features Policy.

    Description

      NOTE: This suggestion is for JIRA Server. Using JIRA Cloud? See the corresponding suggestion.

      When a Jira instance has a large number of issue, an optimise can cause HTTP threads to time out. For example, on this instance, there are 190K issue with a 1.9G main index. When the limit of 4000 issues is reached, the thread that causes that to be reached will kick off an optimised. This means that the whole 1.9Gb index will be rewritten. In this case, it took 111 seconds:

      2009-09-17 17:17:06,293 http-8000-Processor49 INFO tstcreateissue73 62195x782165x2 1bxkl5q http://localhost:8000/secure/AddComment.jspa [jira.issue.index.DefaultIndexManager] Optimizing the
       index because 4009 issues have been re-indexed since last optimize. Threshold is 4000.
      2009-09-17 17:18:27,154 http-8000-Processor32 INFO tstcreateissue230 62195x782163x8 779gde http://localhost:8000/secure/CreateIssueDetails.jspa [jira.issue.index.DefaultIndexManager] Optimize index completed in 111623ms.
      

      This led to a timeout for a thread attempting to add a comment:

      2009-09-17 17:18:57,865 http-8000-Processor32 ERROR tstcreateissue230 62307x782180x10 779gde http://localhost:8000/secure/AddComment.jspa [jira.issue.index.DefaultIndexManager] Wait attempt timed out - waited 30000 milliseconds
      com.atlassian.jira.issue.index.IndexException: Wait attempt timed out - waited 30000 milliseconds        at com.atlassian.jira.issue.index.DefaultIndexManager.obtain(DefaultIndexManager.java:525)
              at com.atlassian.jira.issue.index.DefaultIndexManager.await(DefaultIndexManager.java:466)        at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:330)
              at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssues(DefaultIndexManager.java:282)        at com.atlassian.jira.issue.index.DefaultIndexManager.reIndexIssueObjects(DefaultIndexManager.java:292)
              at sun.reflect.GeneratedMethodAccessor352.invoke(Unknown Source)        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)        at com.atlassian.util.profiling.object.ObjectProfiler.profiledInvoke(ObjectProfiler.java:70)
              at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:28)        at $Proxy63.reIndexIssueObjects(Unknown Source)
              at com.atlassian.jira.event.listeners.search.IssueIndexListener.reIndex(IssueIndexListener.java:155)        at com.atlassian.jira.event.listeners.search.IssueIndexListener.issueCommented(IssueIndexListener.java:88)
              at com.atlassian.jira.event.issue.AbstractIssueEventListener.workflowEvent(AbstractIssueEventListener.java:112)        at com.atlassian.jira.event.issue.IssueEventDispatcher.dispatchEvent(IssueEventDispatcher.java:125)
              at com.atlassian.jira.event.issue.IssueEventDispatcher.dispatchEvent(IssueEventDispatcher.java:83)        at com.atlassian.jira.web.action.issue.AddComment.alertSystemOfComment(AddComment.java:101)
              at com.atlassian.jira.web.action.issue.AddComment.doExecute(AddComment.java:85)        at webwork.action.ActionSupport.execute(ActionSupport.java:153)
              at com.atlassian.jira.action.JiraActionSupport.execute(JiraActionSupport.java:59)        at webwork.dispatcher.GenericDispatcher.executeAction(GenericDispatcher.java:141)
              at com.atlassian.jira.web.dispatcher.JiraServletDispatcher.service(JiraServletDispatcher.java:181)        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
              at com.atlassian.core.filters.HeaderSanitisingFilter.doFilter(HeaderSanitisingFilter.java:44)        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)        at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)
              at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:55)        at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:41)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
              at com.atlassian.jira.web.filters.accesslog.AccessLogFilter.executeRequest(AccessLogFilter.java:154)        at com.atlassian.jira.web.filters.accesslog.AccessLogFilter.doFilter(AccessLogFilter.java:133)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
              at com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:119)        at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:55)
              at com.atlassian.jira.web.filters.SitemeshExcludePathFilter.doFilter(SitemeshExcludePathFilter.java:40)
              at com.atlassian.core.filters.AbstractHttpFilter.doFilter(AbstractHttpFilter.java:31)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
              at com.atlassian.plugin.servlet.filter.IteratingFilterChain.doFilter(IteratingFilterChain.java:46)        at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerFilter.java:55)
              at com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter.doFilter(ServletFilterModuleContainerF
      ...
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              gbarnett George Barnett
              Votes:
              108 Vote for this issue
              Watchers:
              93 Start watching this issue

              Dates

                Created:
                Updated: