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

Bogdan Marinescu commented on SOLR-8347:
----------------------------------------

I made it a blocker because nobody was answering. It's not a blocker but it is 
I believe an issue because if I want to do some asynchronous work in a custom 
component I cannot access the SolrIndexSearcher anymore.. mainly because after 
the solr call is over someone/something closes the searcher (probably due to a 
commit). I was wondering if what I was trying to do was possible (to lock the 
searcher somehow until my component releases it) but I'll take your advice and 
ask in the solr user list

> 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
>            Priority: Critical
>
> 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}
> org.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