[infinispan-issues] [JBoss JIRA] (ISPN-689) Read past EOF caused in Lucene Directory when Lucene flushes but doesn't close the segment

Horacio Vico (Commented) (JIRA) jira-events at lists.jboss.org
Fri Nov 11 13:38:45 EST 2011


    [ https://issues.jboss.org/browse/ISPN-689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12642200#comment-12642200 ] 

Horacio Vico commented on ISPN-689:
-----------------------------------

I am getting a similar exception using Infinispan 'Pagoa' 5.0.1.FINAL.

I have a two node cache, which share a MySQL JDBC CacheStore to store Lucene indexes. This exceptions appear randomly when I restart jboss at the nodes, and the only solution I found after getting this error is to reindex all my entities from scratch.

JAVA Stack trace:

Caused by: java.io.IOException: Read past EOF: Chunk value could not be found for key _0.tis|0|some.package.entity.SomeEntity
	at org.infinispan.lucene.InfinispanIndexInput.setBufferToCurrentChunk(InfinispanIndexInput.java:138)
	at org.infinispan.lucene.InfinispanIndexInput.nextChunk(InfinispanIndexInput.java:131)
	at org.infinispan.lucene.InfinispanIndexInput.readByte(InfinispanIndexInput.java:78)
	at org.apache.lucene.store.IndexInput.readInt(IndexInput.java:71)
	at org.apache.lucene.index.SegmentTermEnum.<init>(SegmentTermEnum.java:50)
	at org.apache.lucene.index.TermInfosReader.<init>(TermInfosReader.java:102)
	at org.apache.lucene.index.SegmentReader$CoreReaders.<init>(SegmentReader.java:121)
	at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:578)
	at org.apache.lucene.index.SegmentReader.get(SegmentReader.java:556)
	at org.apache.lucene.index.DirectoryReader.<init>(DirectoryReader.java:113)
	at org.apache.lucene.index.ReadOnlyDirectoryReader.<init>(ReadOnlyDirectoryReader.java:29)
	at org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:81)
	at org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:736)
	at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75)
	at org.apache.lucene.index.IndexReader.open(IndexReader.java:428)
	at org.apache.lucene.index.IndexReader.open(IndexReader.java:288)
	at org.hibernate.search.reader.SharingBufferReaderProvider.readerFactory(SharingBufferReaderProvider.java:169)
	at org.hibernate.search.reader.SharingBufferReaderProvider$PerDirectoryLatestReader.<init>(SharingBufferReaderProvider.java:243)
	at org.hibernate.search.reader.SharingBufferReaderProvider.createReader(SharingBufferReaderProvider.java:113)
	... 164 more


                
> Read past EOF caused in Lucene Directory when Lucene flushes but doesn't close the segment
> ------------------------------------------------------------------------------------------
>
>                 Key: ISPN-689
>                 URL: https://issues.jboss.org/browse/ISPN-689
>             Project: Infinispan
>          Issue Type: Bug
>          Components: Lucene Directory
>    Affects Versions: 4.1.0.Final
>            Reporter: Sanne Grinovero
>            Assignee: Sanne Grinovero
>             Fix For: 4.2.0.ALPHA3, 4.2.0.Final
>
>
> While this is not the default access scenario performed by Lucene it's possible in some branches to flush the segment and be able to read it before the close.
> I could reproduce the following stacktrace in high load / huge sized index but not in a unit test; disabling the batching started between .flush() and .close() seems to resolve the issue; also this batch seems totally useless as I couldn't find any chance in performance when disabling it.
> java.io.IOException: Read past EOF: Chunk value could not be found for key _ni.fdt|4|issues
> 	at org.infinispan.lucene.InfinispanIndexInput.setBufferToCurrentChunk(InfinispanIndexInput.java:138)
> 	at org.infinispan.lucene.InfinispanIndexInput.nextChunk(InfinispanIndexInput.java:131)
> 	at org.infinispan.lucene.InfinispanIndexInput.readBytes(InfinispanIndexInput.java:96)
> 	at org.apache.lucene.store.IndexInput.readBytes(IndexInput.java:61)
> 	at org.apache.lucene.index.CompoundFileWriter.copyFile(CompoundFileWriter.java:228)
> 	at org.apache.lucene.index.CompoundFileWriter.close(CompoundFileWriter.java:184)
> 	at org.apache.lucene.index.IndexWriter.flushDocStores(IndexWriter.java:2342)
> 	at org.apache.lucene.index.IndexWriter.doFlushInternal(IndexWriter.java:4359)
> 	at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:4264)
> 	at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:4255)
> 	at org.apache.lucene.index.IndexWriter.prepareCommit(IndexWriter.java:4133)
> 	at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:4206)
> 	at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:4179)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the infinispan-issues mailing list