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

Index recovery can try to perform reindex too early

    XMLWordPrintable

Details

    Description

      Index recovery service can try to perform reindex in DefaultIndexRecoveryService#handleStartingEvent as a response to PluginFrameworkResumingEvent. This is too early as not all plugin provided extractors are available at that moment.

      This is most likely a bug in 5.9 even though I have only seen it happen with 6.0 milestones.

      2016-01-05 17:04:06,272 WARN [RMI TCP Connection(2)-127.0.0.1] [confluence.impl.index.DefaultIndexRecoveryService] triggerIndexRecovererModuleDescriptors Index recovery is required for main index, starting now
      2016-01-05 17:04:06,274 WARN [RMI TCP Connection(2)-127.0.0.1] [confluence.impl.index.DefaultIndexRecoveryService] triggerIndexRecovererModuleDescriptors Could not recover main index, the system will attempt to do a full re-index
      2016-01-05 17:04:10,605 ERROR [Indexer: 1] [atlassian.bonnie.search.BaseDocumentBuilder] lambda$extractWithLuceneExtractors$521 Error extracting search fields from userinfo: admin v.1 (557057) using BackwardsCompatibleExtractor wrapping com.atlassian.confluence.search.lucene.extractor.PersonalInformationExtractor@1756981 (confluence.extractors.core:personalInformationExtractor): There should be at least one AvatarProvider module registered in the plugin system.
      2016-01-05 17:04:11,151 ERROR [confluence-interactive-reindexing-thread] [atlassian.confluence.index.ConfluenceReIndexer] indexHandles Exception processing batch, retrying items remaining in batch
      2016-01-05 17:04:11,162 WARN [ThreadPoolAsyncTaskExecutor::Thread 10] [spring.scanner.util.ProductFilterUtil] detectProduct Couldn't detect product, will use ProductFilter.ALL
      2016-01-05 17:04:11,180 ERROR [Indexer: 1] [atlassian.bonnie.search.BaseDocumentBuilder] lambda$extractWithLuceneExtractors$521 Error extracting search fields from userinfo: admin v.1 (557057) using BackwardsCompatibleExtractor wrapping com.atlassian.confluence.search.lucene.extractor.PersonalInformationExtractor@1756981 (confluence.extractors.core:personalInformationExtractor): There should be at least one AvatarProvider module registered in the plugin system.
      2016-01-05 17:04:11,185 ERROR [confluence-interactive-reindexing-thread] [atlassian.confluence.index.ConfluenceReIndexer] indexHandles Exception processing batch, retrying items remaining in batch
      2016-01-05 17:04:11,210 ERROR [Indexer: 1] [atlassian.bonnie.search.BaseDocumentBuilder] lambda$extractWithLuceneExtractors$521 Error extracting search fields from userinfo: admin v.1 (557057) using BackwardsCompatibleExtractor wrapping com.atlassian.confluence.search.lucene.extractor.PersonalInformationExtractor@1756981 (confluence.extractors.core:personalInformationExtractor): There should be at least one AvatarProvider module registered in the plugin system.
      2016-01-05 17:04:11,215 ERROR [confluence-interactive-reindexing-thread] [atlassian.confluence.index.ConfluenceReIndexer] indexHandles Exception processing batch, retrying items remaining in batch
      2016-01-05 17:04:11,250 ERROR [Indexer: 1] [atlassian.bonnie.search.BaseDocumentBuilder] lambda$extractWithLuceneExtractors$521 Error extracting search fields from userinfo: admin v.1 (557057) using BackwardsCompatibleExtractor wrapping com.atlassian.confluence.search.lucene.extractor.PersonalInformationExtractor@1756981 (confluence.extractors.core:personalInformationExtractor): There should be at least one AvatarProvider module registered in the plugin system.
      2016-01-05 17:04:11,255 ERROR [confluence-interactive-reindexing-thread] [atlassian.confluence.index.ConfluenceReIndexer] indexHandles Exception processing batch, maximum number of retries reached
      java.util.concurrent.ExecutionException: org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
      	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
      	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
      	at com.atlassian.confluence.index.ConfluenceReIndexer.indexHandles(ConfluenceReIndexer.java:284)
      	at com.atlassian.confluence.index.ConfluenceReIndexer.lambda$indexType$544(ConfluenceReIndexer.java:250)
      	at com.atlassian.confluence.index.ConfluenceReIndexer$$Lambda$225/2138297738.perform(Unknown Source)
      	at com.atlassian.bonnie.LuceneConnection.withWriter(LuceneConnection.java:489)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
      	at com.sun.proxy.$Proxy41.withWriter(Unknown Source)
      	at com.atlassian.confluence.index.ConfluenceReIndexer.indexType(ConfluenceReIndexer.java:242)
      	at com.atlassian.confluence.index.ConfluenceReIndexer.indexUsers(ConfluenceReIndexer.java:225)
      	at com.atlassian.confluence.index.ConfluenceReIndexer.reIndex(ConfluenceReIndexer.java:144)
      	at com.atlassian.confluence.search.ReIndexTask.run(ReIndexTask.java:60)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at com.atlassian.confluence.tenant.TenantGate$3.call(TenantGate.java:141)
      	at com.atlassian.confluence.search.lucene.DefaultConfluenceIndexManager.lambda$reIndex$661(DefaultConfluenceIndexManager.java:227)
      	at com.atlassian.confluence.search.lucene.DefaultConfluenceIndexManager$$Lambda$188/356716172.run(Unknown Source)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only
      	at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:695)
      	at sun.reflect.GeneratedMethodAccessor41.invoke(Unknown Source)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:497)
      	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
      	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
      	at com.sun.proxy.$Proxy14.commit(Unknown Source)
      	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
      	at com.atlassian.confluence.search.lucene.ReindexWorkBatch.executeTransaction(ReindexWorkBatch.java:71)
      	at com.atlassian.confluence.search.lucene.ReindexWorkBatch.run(ReindexWorkBatch.java:64)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at com.atlassian.confluence.tenant.TenantGate$3.call(TenantGate.java:141)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	... 1 more
      

      Steps to reproduce:

      1. Set up a one node cluster with recent 6.0.0 milestone
      2. Stop the node
      3. Remove ${CONFLUENCE_HOME}/journal/main_index file
      4. Start the node

      Workaround
      After the reindexing has completed. Run reindexing again.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              onevalainen Olli Nevalainen
              Votes:
              6 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated: