[
https://issues.apache.org/jira/browse/SOLR-8347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bogdan Marinescu updated SOLR-8347:
-----------------------------------
Description:
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?
was:
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?
> 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}
> 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: [email protected]
For additional commands, e-mail: [email protected]