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

As an JIRA Administrator I want to have debug logging for DefaultIndexManager lock (readLock)

XMLWordPrintable

    • Icon: Suggestion Suggestion
    • Resolution: Unresolved
    • None
    • Indexing
    • 1
    • 1
    • 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.

      Problem Definition

      On high load the NodeReindexServiceThread can fail acquiring the READ lock with the following error. However, it is not saying what thread/process holding the lock

      2017-07-23 00:15:10,552 NodeReindexServiceThread:thread-1 ERROR      [c.a.j.issue.index.DefaultIndexManager] Wait attempt timed out - waited 30000 millis
      econds
      com.atlassian.jira.issue.index.IndexException: Wait attempt timed out - waited 30000 milliseconds
              at com.atlassian.jira.issue.index.DefaultIndexManager.obtain(DefaultIndexManager.java:824)
              at com.atlassian.jira.issue.index.DefaultIndexManager.access$600(DefaultIndexManager.java:90)
              at com.atlassian.jira.issue.index.DefaultIndexManager$IndexLock.tryLock(DefaultIndexManager.java:1166)
              at com.atlassian.jira.issue.index.DefaultIndexManager.getIndexLock(DefaultIndexManager.java:810)
              at com.atlassian.jira.issue.index.DefaultIndexManager.deIndexIssueObjects(DefaultIndexManager.java:763)
              ... 2 filtered
              at java.lang.reflect.Method.invoke(Method.java:498)
              at com.atlassian.jira.config.component.SwitchingInvocationHandler.invoke(SwitchingInvocationHandler.java:22)
              at com.sun.proxy.$Proxy16.deIndexIssueObjects(Unknown Source)
              at com.atlassian.jira.index.ha.DefaultNodeReindexService.updateIssueIndex(DefaultNodeReindexService.java:410)
              at com.atlassian.jira.index.ha.DefaultNodeReindexService.updateAffectedIndexes(DefaultNodeReindexService.java:298)
              at com.atlassian.jira.index.ha.DefaultNodeReindexService.reIndex(DefaultNodeReindexService.java:252)
              at com.atlassian.jira.index.ha.DefaultNodeReindexService.dt_access$778(DefaultNodeReindexService.java)
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
              at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
              at java.lang.Thread.run(Thread.java:745) 
      

      Read Lock - DefaultIndexManager

              /**
               * The index read lock. This lock needs to be acquired when updating the index (i.e. adding to it or updating
               * existing documents in the index).
               */
              final IndexLock readLock = new IndexLock(indexLock.readLock()); 
      

      Suggested Solution

      • Log debugging information when DefaultIndexManager failed to acquire the READ lock.

      Workaround

      • None

            ecasuscelli Esteban Casuscelli
            vkharisma vkharisma (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: