[ 
https://issues.apache.org/jira/browse/OAK-9561?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17406799#comment-17406799
 ] 

Thomas Mueller commented on OAK-9561:
-------------------------------------

To me it looks like a reader isn't close in case the asynchronous thread 
executes a bit later (which usually doesn't happen, but can happen).

It looks like the usage counter is incremented in two places, but then only 
decremented once, so won't go to 0:

{noformat}
[branch] StandardDirectoryReader(:nrt _0(4.7):c100 _1(4.7):c500) 2100061450 
open reader -> 1
java.lang.Exception
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex.createReader(NRTIndex.java:340)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex.getPrimaryReader(NRTIndex.java:126)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex.getReaders(NRTIndex.java:171)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexNodeManager.getNRTReaders(LuceneIndexNodeManager.java:263)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexNodeManager.<init>(LuceneIndexNodeManager.java:139)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexNodeManager.open(LuceneIndexNodeManager.java:77)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.findIndexNode(IndexTracker.java:259)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.acquireIndexNode(IndexTracker.java:228)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$LazyLuceneIndexNode.findIndexNode(LucenePropertyIndex.java:1753)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$LazyLuceneIndexNode.getIndexStatistics(LucenePropertyIndex.java:1768)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$LazyLuceneIndexNode.getIndexStatistics(LucenePropertyIndex.java:1)
        at 
org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndexPlanner.defaultPlan(FulltextIndexPlanner.java:769)
        at 
org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndexPlanner.getPlanBuilder(FulltextIndexPlanner.java:294)
        at 
org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndexPlanner.getPlan(FulltextIndexPlanner.java:117)
        at 
org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndex.getPlans(FulltextIndex.java:129)
        at 
org.apache.jackrabbit.oak.query.QueryImpl.getBestSelectorExecutionPlan(QueryImpl.java:1099)
        at 
org.apache.jackrabbit.oak.query.QueryImpl.getBestSelectorExecutionPlan(QueryImpl.java:1046)
        at 
org.apache.jackrabbit.oak.query.ast.SelectorImpl.prepare(SelectorImpl.java:308)
        at org.apache.jackrabbit.oak.query.QueryImpl.prepare(QueryImpl.java:707)
        at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.prepareAndSelect(QueryEngineImpl.java:304)
        at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:278)
        at 
org.apache.jackrabbit.oak.jcr.query.QueryManagerImpl.executeQuery(QueryManagerImpl.java:136)
        at 
org.apache.jackrabbit.oak.jcr.query.QueryImpl$2.perform(QueryImpl.java:104)
        at 
org.apache.jackrabbit.oak.jcr.query.QueryImpl$2.perform(QueryImpl.java:100)
        at 
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209)
        at 
org.apache.jackrabbit.oak.jcr.query.QueryImpl.execute(QueryImpl.java:99)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.DelayedFacetReadTest$1.run(DelayedFacetReadTest.java:232)
        at java.lang.Thread.run(Thread.java:745)
[branch] StandardDirectoryReader(:nrt _0(4.7):c100 _1(4.7):c500) 2100061450 
tryIncB -> 2
java.lang.Exception
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex.getPrimaryReader(NRTIndex.java:134)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex.getReaders(NRTIndex.java:171)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexNodeManager.getNRTReaders(LuceneIndexNodeManager.java:263)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexNodeManager.<init>(LuceneIndexNodeManager.java:139)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexNodeManager.open(LuceneIndexNodeManager.java:77)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.findIndexNode(IndexTracker.java:259)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker.acquireIndexNode(IndexTracker.java:228)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$LazyLuceneIndexNode.findIndexNode(LucenePropertyIndex.java:1753)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$LazyLuceneIndexNode.getIndexStatistics(LucenePropertyIndex.java:1768)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$LazyLuceneIndexNode.getIndexStatistics(LucenePropertyIndex.java:1)
        at 
org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndexPlanner.defaultPlan(FulltextIndexPlanner.java:769)
        at 
org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndexPlanner.getPlanBuilder(FulltextIndexPlanner.java:294)
        at 
org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndexPlanner.getPlan(FulltextIndexPlanner.java:117)
        at 
org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndex.getPlans(FulltextIndex.java:129)
        at 
org.apache.jackrabbit.oak.query.QueryImpl.getBestSelectorExecutionPlan(QueryImpl.java:1099)
        at 
org.apache.jackrabbit.oak.query.QueryImpl.getBestSelectorExecutionPlan(QueryImpl.java:1046)
        at 
org.apache.jackrabbit.oak.query.ast.SelectorImpl.prepare(SelectorImpl.java:308)
        at org.apache.jackrabbit.oak.query.QueryImpl.prepare(QueryImpl.java:707)
        at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.prepareAndSelect(QueryEngineImpl.java:304)
        at 
org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineImpl.java:278)
        at 
org.apache.jackrabbit.oak.jcr.query.QueryManagerImpl.executeQuery(QueryManagerImpl.java:136)
        at 
org.apache.jackrabbit.oak.jcr.query.QueryImpl$2.perform(QueryImpl.java:104)
        at 
org.apache.jackrabbit.oak.jcr.query.QueryImpl$2.perform(QueryImpl.java:100)
        at 
org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:209)
        at 
org.apache.jackrabbit.oak.jcr.query.QueryImpl.execute(QueryImpl.java:99)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.DelayedFacetReadTest$1.run(DelayedFacetReadTest.java:232)
        at java.lang.Thread.run(Thread.java:745)
abc..
main closed2
main closed3
[main] StandardDirectoryReader(:nrt _0(4.7):c100 _1(4.7):c500) 2100061450 
defRef -> 2
java.lang.Exception
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex.decrementReaderUseCount(NRTIndex.java:302)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex.decrementReaderUseCount(NRTIndex.java:292)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex.close(NRTIndex.java:215)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndexFactory.close(NRTIndexFactory.java:100)
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.DelayedFacetReadTest.tearDown(DelayedFacetReadTest.java:128)
{noformat}

> Flaky test: DelayedFacetReadTest.facet 
> ---------------------------------------
>
>                 Key: OAK-9561
>                 URL: https://issues.apache.org/jira/browse/OAK-9561
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: indexing, query
>            Reporter: Thomas Mueller
>            Priority: Major
>
> Sometimes we see:
> {noformat}
> Error Message
> Unclosed reader found with refCount 1 for index /oak:index/hybridtest 
> (nrt1629897373046)
> Stacktrace
> java.lang.IllegalStateException: Unclosed reader found with refCount 1 for 
> index /oak:index/hybridtest (nrt1629897373046)
>       at 
> org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex.assertAllReadersAreClosed(NRTIndex.java:270)
>       at 
> org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndex.close(NRTIndex.java:204)
>       at 
> org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.NRTIndexFactory.close(NRTIndexFactory.java:100)
>       at 
> org.apache.jackrabbit.oak.plugins.index.lucene.hybrid.DelayedFacetReadTest.tearDown(DelayedFacetReadTest.java:121)
>       at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to