Lucene does keep up with references. However when an index is in use by multiple threads and a new index version becomes available it waits on calling the final close until all threads are complete on the original index. If you take a look at the BlurIndexSimpleWriter you will see how this works.
https://github.com/apache/incubator-blur/blob/release-0.2.2-incubating/blur-core/src/main/java/org/apache/blur/manager/writer/BlurIndexSimpleWriter.java#L178 Not sure what the issue could be at this point. On Mon, May 9, 2016 at 5:38 AM, Ravikumar Govindarajan < [email protected]> wrote: > Thanks Aaron... > > Just a quick question. Lucene itself has ref-counting to close it's readers > no? Or Blur has it's own logic to handle it? > > -- > Ravi > > On Fri, May 6, 2016 at 7:56 PM, Aaron McCurry <[email protected]> wrote: > > > Likely yes. If have a few minutes this weekend I can look through that > > version and see if I can point you in the right direction. > > > > On Fri, May 6, 2016 at 8:46 AM, Ravikumar Govindarajan < > > [email protected]> wrote: > > > > > Sometimes during an ongoing search we receive an > > > IndexReaderClosedException... > > > > > > We are on an older version of Blur (0.2.2). Has this been fixed in > newer > > > versions or we have been using it wrongly? > > > > > > *stackTraceStr: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:257) > > > at > > > > > > > > > org.apache.lucene.index.FilterAtomicReader.fields(FilterAtomicReader.java:380) > > > at > > > > > > > > > org.apache.blur.index.ExitableReader$ExitableFilterAtomicReader.fields(ExitableReader.java:81) > > > at > > > > > > > > > org.apache.lucene.search.TermCollectingRewrite.collectTerms(TermCollectingRewrite.java:52) > > > at > > > > > > > > > org.apache.lucene.search.ConstantScoreAutoRewrite.rewrite(ConstantScoreAutoRewrite.java:95) > > > at > > > > > > > > > org.apache.lucene.search.MultiTermQuery$ConstantScoreAutoRewrite.rewrite(MultiTermQuery.java:220) > > > at > > org.apache.lucene.search.MultiTermQuery.rewrite(MultiTermQuery.java:288) > > > at org.apache.lucene.search.BooleanQuery.rewrite(BooleanQuery.java:412) > > > > > >
