Uploaded image for project: 'Confluence Data Center'
  1. Confluence Data Center
  2. CONFSERVER-16184

Lock contentions in didyoumean code

    XMLWordPrintable

Details

    Description

      We've just experienced two outages due to lock contentions in the did you mean search code.

      The issue seems to be caused only under load, possibly thanks to some race condition.

      Turning off the feature immediately help our site to recover.

      I'm attaching thread dumps from both outages, both pointing to locks in the didyoumean code like this one:

      "service-j2ee-127" - Thread t@208
         java.lang.Thread.State: WAITING on edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock@7b60ad80
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:485)
              at edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:415)
              at com.atlassian.bonnie.LuceneConnection.grabReadLock(LuceneConnection.java:495)
              at com.atlassian.bonnie.LuceneConnection.withReader(LuceneConnection.java:190)
              at com.atlassian.confluence.search.didyoumean.lucene.LuceneWordSuggester.isMemberOfVocabulary(LuceneWordSuggester.java:76)
              at com.atlassian.confluence.search.didyoumean.lucene.LuceneWordSuggester.suggestSimilar(LuceneWordSuggester.java:103)
              at com.atlassian.confluence.search.didyoumean.lucene.LuceneWordSuggester.suggest(LuceneWordSuggester.java:71)
              at com.atlassian.confluence.search.didyoumean.lucene.LuceneWordSuggester.suggest(LuceneWordSuggester.java:58)
              at com.atlassian.confluence.search.didyoumean.lucene.LuceneWordSuggester.suggest(LuceneWordSuggester.java:50)
              at com.atlassian.confluence.search.didyoumean.QuerySuggester.getSuggestion(QuerySuggester.java:88)
              at com.atlassian.confluence.search.actions.SearchSiteAction.execute(SearchSiteAction.java:249)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:168)
              at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35)
              at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
              at com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor.intercept(DefaultWorkflowInterceptor.java:55)
              at com.atlassian.confluence.core.ConfluenceWorkflowInterceptor.intercept(ConfluenceWorkflowInterceptor.java:35)
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            15d9a6950818 Igor Minar
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: