Actually there are 2 issues...

1. IndexReaderClosedException
2. HDFS Stream Closed

Merge completion results in File Deletion & ultimately HDFS Stream Closed
during Search....

I use IndexFileDeleter with KeepOnlyLastCommitDeletionPolicy. This blindly
deletes the file, without bothering to cross-check IndexReader.RefCount >
0.


*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)
at
org.apache.blur.store.buffer.ReusedBufferedIndexInput.readBytes(ReusedBufferedIndexInput.java:167)
at
org.apache.blur.store.buffer.ReusedBufferedIndexInput.readBytes(ReusedBufferedIndexInput.java:122)
at
org.apache.blur.store.hdfs.MmapCacheIndexInput.readAndcache(MmapCacheIndexInput.java:24)
at
org.apache.blur.store.blockcache_v2.CacheIndexInput.fillNormally(CacheIndexInput.java:354)
at
org.apache.blur.store.blockcache_v2.CacheIndexInput.fill(CacheIndexInput.java:379)
at
org.apache.blur.store.blockcache_v2.CacheIndexInput.tryToFill(CacheIndexInput.java:297)
at
org.apache.blur.store.blockcache_v2.CacheIndexInput.readByte(CacheIndexInput.java:151)
at
org.apache.blur.lucene.warmup.TraceableIndexInput.readByte(TraceableIndexInput.java:62)
at org.apache.lucene.store.DataInput.readVInt(DataInput.java:108)
at
org.apache.lucene.codecs.BlockTreeTermsReader$FieldReader$SegmentTermsEnum$Frame.loadBlock(BlockTreeTermsReader.java:2366)
at
org.apache.lucene.codecs.BlockTreeTermsReader$FieldReader$SegmentTermsEnum.seekCeil(BlockTreeTermsReader.java:1949)
at
org.apache.blur.index.ExitableReader$ExitableTermsEnum.seekCeil(ExitableReader.java:250)
at
org.apache.lucene.index.FilteredTermsEnum.next(FilteredTermsEnum.java:225)
at
org.apache.lucene.search.TermCollectingRewrite.collectTerms(TermCollectingRewrite.java:78)
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)
at org.apache.lucene.search.BooleanQuery.rewrite(BooleanQuery.java:412)
at org.apache.lucene.search.BooleanQuery.rewrite(BooleanQuery.java:412)
at

On Mon, May 9, 2016 at 4:42 PM, Ravikumar Govindarajan <
[email protected]> wrote:

> One extra info we gleaned from the logs...
>
> 1. Merge Starts & is about to complete
> 2. Searcher is opened
> 3. Merge Completes
> 4. Ref-count drops to 0 in IndexReader
> 5. IndexReader closed while Searcher is still open
>
> This seems to be the main pattern for causing the Exception
>
> --
> Ravi
>
> On Mon, May 9, 2016 at 3:08 PM, 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)
>>> >
>>>
>>
>>
>

Reply via email to