-
Bug
-
Resolution: Cannot Reproduce
-
High
-
None
-
None
-
1
-
This is from https://studio.plugins.atlassian.com/browse/PGTR-82 - I'm creating a duplicate in JAC as to add the bug in Support Bug Fix backlog.
The pagetreesearch macro can cause performance issue in large Confluence instance with complex page hierarchy.
In one reported accident, it appears to require building a lot of joints when accessing the ancestors table to determine the page hierarchy - if the hierarchy is complex enough, the reindexing process can take days to finish.
Example query:
select ancestors0_.DESCENDENTID as DESCENDE1__, ancestors0.ANCESTORID as ANCESTORID_, ancestors0.ANCESTORPOSITION as ANCESTOR3__, contentent1.CONTENTID as CONTENTID0_, contentent1_.CONTENTTYPE as CONTENTT2_0_, contentent1_.TITLE as TITLE0_, contentent1_.VERSION as VERSION0_, contentent1_.CREATOR as CREATOR0_, contentent1_.CREATIONDATE as CREATION6_0_, contentent1_.LASTMODIFIER as LASTMODI7_0_, contentent1_.LASTMODDATE as LASTMODD8_0_, contentent1_.VERSIONCOMMENT as VERSIONC9_0_, contentent1_.PREVVER as PREVVER0_, contentent1_.CONTENT_STATUS as CONTENT11_0_, contentent1_.SPACEID as SPACEID0_, contentent1_.CHILD_POSITION as CHILD_P13_0_, contentent1_.PARENTID as PARENTID0_, contentent1_.MESSAGEID as MESSAGEID0_, contentent1_.DRAFTPAGEID as DRAFTPA16_0_, contentent1_.DRAFTSPACEKEY as DRAFTSP17_0_, contentent1_.DRAFTTYPE as DRAFTTYPE0_, contentent1_.DRAFTPAGEVERSION as DRAFTPA19_0_, contentent1_.PAGEID as PAGEID0_, contentent1_.PARENTCOMMENTID as PARENTC21_0_, contentent1_.USERNAME as USERNAME0_, contenten
Example thread dump:
"com.atlassian.confluence.search.lucene.ConfluenceMultiThreadedIndexer: 6" daemon prio=1 tid=0x00002aaacc1d6400 nid=0x150b waiting on condition [0x00000000459f8000..0x00000000459f9d90] at org.postgresql.core.PGStream.ReceiveTupleV3(PGStream.java:349) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1322) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:194) - locked <0x00002b0d7c50add8> (a org.postgresql.core.v3.QueryExecutorImpl) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254) at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93) at net.sf.hibernate.impl.BatcherImpl.getResultSet(BatcherImpl.java:89) at net.sf.hibernate.loader.Loader.getResultSet(Loader.java:880) at net.sf.hibernate.loader.Loader.doQuery(Loader.java:273) at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:138) at net.sf.hibernate.loader.Loader.loadCollection(Loader.java:1020) at net.sf.hibernate.loader.Loader.loadCollection(Loader.java:995) at net.sf.hibernate.loader.CollectionLoader.initialize(CollectionLoader.java:83) at net.sf.hibernate.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:288) at net.sf.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:3315) at net.sf.hibernate.collection.PersistentCollection.initialize(PersistentCollection.java:195) at net.sf.hibernate.collection.PersistentCollection.read(PersistentCollection.java:71) at net.sf.hibernate.collection.List.iterator(List.java:103) at com.atlassian.confluence.plugins.pagetree.PageHierarchyExtractor.addFields(PageHierarchyExtractor.java:78) at com.atlassian.confluence.plugin.descriptor.ExtractorModuleDescriptor$BackwardsCompatibleExtractor.addFields(ExtractorModuleDescriptor.java:43) at com.atlassian.bonnie.search.BaseDocumentBuilder.getDocument(BaseDocumentBuilder.java:104) at com.atlassian.confluence.search.lucene.ConfluenceDocumentBuilder.getDocument(ConfluenceDocumentBuilder.java:89) at com.atlassian.confluence.search.lucene.ConfluenceObjectToDocumentConverter.convert(ConfluenceObjectToDocumentConverter.java:30) at com.atlassian.confluence.search.lucene.ConfluenceObjectQueue$1.indexCollection(ConfluenceObjectQueue.java:79) at com.atlassian.bonnie.index.QueueProcessingRunnableImpl.run(QueueProcessingRunnableImpl.java:39) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at $Proxy670.run(Unknown Source) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:987) at edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:528) at java.lang.Thread.run(Thread.java:595)
- is related to
-
CONFSERVER-11860 Pagetree component causing errors in large spaces
- Closed