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)

Reply via email to