-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Low
-
Affects Version/s: 9.2.0
-
Component/s: Search - Indexing
-
Severity 2 - Major
Issue Summary
Incremental Indexing stucking
Steps to Reproduce
- Update DB directly to remove message field for 1 Journal Entry with type
UPDATE_DOCUMENT - Reset journal number in Home Directory
Expected Results
Incremental Indexing still process as normal
Actual Results
Incremental Indexing is stuck
12:10:41,033 WARN [Caesium-1-3] [impl.search.IndexFlushScheduler] lambda$new$1 Failed to flush index queue LuceneContentIndexFlusher, retry in 10s com.atlassian.confluence.internal.search.v2.lucene.LuceneException: java.lang.IllegalArgumentException: Index queue entry found with invalid handle: at com.atlassian.confluence.internal.search.v2.lucene.LuceneConnection.withBatchUpdate(LuceneConnection.java:463) at com.atlassian.confluence.internal.index.lucene.LuceneSearchIndexAccessor.withBatchUpdate(LuceneSearchIndexAccessor.java:164) at com.atlassian.confluence.internal.search.LuceneIncrementalIndexManager.performFlush(LuceneIncrementalIndexManager.java:179) at com.atlassian.confluence.internal.search.LuceneIncrementalIndexManager.flushQueue(LuceneIncrementalIndexManager.java:131) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:359) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:196) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:380) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:223) at jdk.proxy3/jdk.proxy3.$Proxy293.flushQueue(Unknown Source) at com.atlassian.confluence.impl.search.IndexFlushScheduler.lambda$new$1(IndexFlushScheduler.java:118) at com.atlassian.confluence.impl.schedule.caesium.JobRunnerWrapper.doRunJob(JobRunnerWrapper.java:121) at com.atlassian.confluence.impl.schedule.caesium.JobRunnerWrapper.runJob(JobRunnerWrapper.java:83) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService$JobRunnerWithStats.runJob(CaesiumSchedulerService.java:743) at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:134) at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:106) at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:90) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.launchJob(CaesiumSchedulerService.java:545) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeLocalJobWithRetryOnFailure(CaesiumSchedulerService.java:500) at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:440) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:66) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:60) at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:35) at java.base/java.lang.Thread.run(Thread.java:1583) Caused by: java.lang.IllegalArgumentException: Index queue entry found with invalid handle: at com.atlassian.confluence.internal.search.queue.JournalIndexTaskQueue.getSearchableFromEntry(JournalIndexTaskQueue.java:67) at com.atlassian.confluence.impl.search.queue.ContentIndexTaskQueue.toTask(ContentIndexTaskQueue.java:63) at com.atlassian.confluence.impl.search.queue.ContentIndexTaskQueue.toTask(ContentIndexTaskQueue.java:27) at com.atlassian.confluence.internal.search.queue.AbstractJournalIndexTaskQueue.lambda$flushAndExecute$1(AbstractJournalIndexTaskQueue.java:190) at com.atlassian.confluence.impl.journal.DefaultJournalService.lambda$convert$0(DefaultJournalService.java:87) at com.atlassian.confluence.impl.journal.DefaultJournalManager.processNewEntries(DefaultJournalManager.java:117) at com.atlassian.confluence.impl.journal.DefaultJournalService.processNewEntries(DefaultJournalService.java:44) at com.atlassian.confluence.impl.index.DefaultIndexJournalService.processNewEntries(DefaultIndexJournalService.java:52) at com.atlassian.confluence.internal.search.queue.AbstractJournalIndexTaskQueue.flushAndExecute(AbstractJournalIndexTaskQueue.java:185) at com.atlassian.confluence.internal.search.LuceneIncrementalIndexManager.lambda$flushAndExecuteInBatches$3(LuceneIncrementalIndexManager.java:237) at com.atlassian.confluence.impl.hibernate.HibernateSessionManager5.executeThenClearSessionWithoutCommitOrFlush(HibernateSessionManager5.java:167) at com.atlassian.confluence.internal.search.LuceneIncrementalIndexManager.flushAndExecuteInBatches(LuceneIncrementalIndexManager.java:234) at com.atlassian.confluence.internal.search.LuceneIncrementalIndexManager.lambda$performFlush$1(LuceneIncrementalIndexManager.java:188) at com.atlassian.confluence.internal.index.lucene.LuceneSearchIndexAccessor.lambda$execute$0(LuceneSearchIndexAccessor.java:137) at com.atlassian.confluence.internal.search.v2.lucene.LuceneConnection.withWriter(LuceneConnection.java:436) at com.atlassian.confluence.internal.search.v2.lucene.LuceneConnection.execute(LuceneConnection.java:648) at com.atlassian.confluence.internal.index.lucene.LuceneSearchIndexAccessor.execute(LuceneSearchIndexAccessor.java:135) at com.atlassian.confluence.internal.search.LuceneIncrementalIndexManager.lambda$performFlush$2(LuceneIncrementalIndexManager.java:179) at com.atlassian.confluence.internal.search.v2.lucene.LuceneConnection.withBatchUpdate(LuceneConnection.java:461) ... 27 more
Workaround
Make sure all Journal Entry with type UPDATE_DOCUMENT having valid handle string
Currently there is no known workaround for this behavior. A workaround will be added here when available