Bogdan Marinescu created SOLR-8347:
--------------------------------------

             Summary: Asynchronous searcher for custom component
                 Key: SOLR-8347
                 URL: https://issues.apache.org/jira/browse/SOLR-8347
             Project: Solr
          Issue Type: Bug
          Components: SearchComponents - other
            Reporter: Bogdan Marinescu


I'm trying to write a custom component for fuzzy searches. 
After solr calls my component, I create a Thread and give it the 
SolrIndexSearcher and some params.

Problem is after a few seconds I get an Exception that the indexreader was 
closed 
{code}
rg.apache.lucene.store.AlreadyClosedException: this IndexReader cannot be used 
anymore as one of its child readers was closed
        at org.apache.lucene.index.IndexReader.ensureOpen(IndexReader.java:279)
        at 
org.apache.lucene.index.FilterLeafReader.getLiveDocs(FilterLeafReader.java:374)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:768)
        at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:485)
        at 
org.apache.solr.search.SolrIndexSearcher.buildAndRunCollectorChain(SolrIndexSearcher.java:202)
        at 
org.apache.solr.search.SolrIndexSearcher.getDocListNC(SolrIndexSearcher.java:1666)
        at 
org.apache.solr.search.SolrIndexSearcher.getDocListC(SolrIndexSearcher.java:1485)
        at 
org.apache.solr.search.SolrIndexSearcher.search(SolrIndexSearcher.java:561)
        at 
org.apache.solr.search.SolrIndexSearcher.getDocList(SolrIndexSearcher.java:1350)
        at 
awinta.mdm.solr.components.FuzzyLikeThisComponent$FLTHelper.getLikeThis(FuzzyLikeThisComponent.java:336)
        at awinta.mdm.solr.components.FLTWorker.getLikeThese(FLTWorker.java:161)
        at awinta.mdm.solr.components.FLTWorker.call(FLTWorker.java:94)
        at awinta.mdm.solr.components.FLTWorker.call(FLTWorker.java:35)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)

{code}

Is there a way of locking the IndexReader so it doesn't get closed by other 
threads? 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to