Sorry, pasted the wrong trace. Please Ignore it... The actual issue is not IndexAlreadyClosedException but Stream Closed Exception..
i.e., whenever search is on-going with IndexReader.refCount > 0 & merge has just completed, IndexFileDeleter blindly deletes the files causing StreamClosedException for us... Lucene 4.6.1 , IndexFileDeleter with KeepOnlyLastCommitDeletionPolicy *Exception(message:Unknown error during rewrite, stackTraceStr:java.io.IOException: Stream closed* at org.apache.hadoop.hdfs.DFSInputStream.pread(DFSInputStream.java:1385) at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:1374) at org.apache.hadoop.fs.FSDataInputStream.read(FSDataInputStream.java:89) at org.apache.blur.store.hdfs.HdfsIndexInput.readInternal(HdfsIndexInput.java:62) On Tue, May 10, 2016 at 11:32 AM, Ravikumar Govindarajan < ravikumar.govindara...@gmail.com> wrote: > Sometimes during an ongoing search we receive an > IndexReaderClosedException & found that it happens when a merge is > completed. > > We are on an older version of lucene (4.6.1). > > IndexFileDeleter (KeepOnlyLastCommitDeletionPolicy) deletes the file after > the merge completes but we have an open IndexSearcher at that time. We > verified that IndexReader has refCount > 0 but IFD blindly issues a > delete. Anything we are doing wrong? > > Any help is much appreciated > > -- > Ravi > > *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) >