Ilyas Türkben created JCR-3841:
----------------------------------
Summary: Shared CachingHierarchyManager blocks user threads
Key: JCR-3841
URL: https://issues.apache.org/jira/browse/JCR-3841
Project: Jackrabbit Content Repository
Issue Type: Bug
Components: jackrabbit-core
Affects Versions: 2.4.4
Reporter: Ilyas Türkben
Investigating a performance issue caused by blocked user threads in a Sling
based web application, I have found out that the CachingHierarchyManager is
shared indirectly by the threads and blocks them because of the cacheMonitor in
case of heavy queries with sorting.
{code:java}
java.lang.Thread.State: BLOCKED (on object monitor)
at
org.apache.jackrabbit.core.CachingHierarchyManager.get(CachingHierarchyManager.java:503)
- waiting to lock <0x000000062ea7a380> (a java.lang.Object)
at
org.apache.jackrabbit.core.CachingHierarchyManager.getPath(CachingHierarchyManager.java:237)
at
org.apache.jackrabbit.core.query.lucene.SharedFieldComparatorSource$RelPathFieldComparator.sortValue(SharedFieldComparatorSource.java:195)
at
org.apache.jackrabbit.core.query.lucene.SharedFieldComparatorSource$CompoundScoreFieldComparator.sortValue(SharedFieldComparatorSource.java:244)
at
org.apache.jackrabbit.core.query.lucene.FieldComparatorBase.compareBottom(FieldComparatorBase.java:66)
at
org.apache.lucene.search.TopFieldCollector$OutOfOrderOneComparatorScoringNoMaxScoreCollector.collect(TopFieldCollector.java:232)
at org.apache.lucene.search.Scorer.score(Scorer.java:62)
at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:212)
at org.apache.lucene.search.Searcher.search(Searcher.java:67)
at
org.apache.jackrabbit.core.query.lucene.SortedLuceneQueryHits.getHits(SortedLuceneQueryHits.java:156)
at
org.apache.jackrabbit.core.query.lucene.SortedLuceneQueryHits.nextScoreNode(SortedLuceneQueryHits.java:133)
at
org.apache.jackrabbit.core.query.lucene.QueryHitsAdapter.nextScoreNodes(QueryHitsAdapter.java:54)
at
org.apache.jackrabbit.core.query.lucene.FilterMultiColumnQueryHits.nextScoreNodes(FilterMultiColumnQueryHits.java:63)
at
org.apache.jackrabbit.core.query.lucene.QueryResultImpl.collectScoreNodes(QueryResultImpl.java:327)
at
org.apache.jackrabbit.core.query.lucene.QueryResultImpl.getResults(QueryResultImpl.java:291)
at
org.apache.jackrabbit.core.query.lucene.SingleColumnQueryResult.<init>(SingleColumnQueryResult.java:66)
at
org.apache.jackrabbit.core.query.lucene.QueryImpl.execute(QueryImpl.java:134)
at
org.apache.jackrabbit.core.query.QueryImpl$1.perform(QueryImpl.java:132)
at
org.apache.jackrabbit.core.query.QueryImpl$1.perform(QueryImpl.java:129)
at
org.apache.jackrabbit.core.session.SessionState.perform(SessionState.java:216)
at
org.apache.jackrabbit.core.query.QueryImpl.execute(QueryImpl.java:128)
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)