[ 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)