tags:

views:

276

answers:

1

I am seeing the following error when trying to search using Lucene. (version 1.4.3). Any ideas as to why I could be seeing this and how to fix it?

Caused by: java.io.IOException: read past EOF
    at org.apache.lucene.store.InputStream.refill(InputStream.java:154)
    at org.apache.lucene.store.InputStream.readByte(InputStream.java:43)
    at org.apache.lucene.store.InputStream.readVInt(InputStream.java:83)
    at org.apache.lucene.index.FieldInfos.read(FieldInfos.java:195)
    at org.apache.lucene.index.FieldInfos.<init>(FieldInfos.java:55)
    at org.apache.lucene.index.SegmentReader.initialize(SegmentReader.java:109)
    at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:89)
    at org.apache.lucene.index.IndexReader$1.doBody(IndexReader.java:118)
    at org.apache.lucene.store.Lock$With.run(Lock.java:109)
    at org.apache.lucene.index.IndexReader.open(IndexReader.java:111)
    at org.apache.lucene.index.IndexReader.open(IndexReader.java:106)
    at org.apache.lucene.search.IndexSearcher.<init>(IndexSearcher.java:43)

In this same environment I also see the following error:

Caused by: java.io.IOException: Lock obtain timed out:
Lock@/tmp/lucene-3ec31395c8e06a56e2939f1fdda16c67-write.lock
    at org.apache.lucene.store.Lock.obtain(Lock.java:58)
    at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:223)
    at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:213)

The same code works in a test environment, however not in production. Cannot identify any obvious differences between the two environments.

+3  A: 

File permissions are wrong (it needs write permission) or your are not able to access a locked file that the current process needs.

Chris Ballance