Hello :) We have a customer who's system keeps crashing at certain queries. At default we use Mmap directory for search as it usually gives us the best performance. Although the heap usage seemed normal, we asked them to switch to NIOFSDirectory to make sure it's not a memory issue... The system stopped crashing, but now they see the following errors occur in some of the searches:
java.io.IOException: Input/output error sun.nio.ch.FileDispatcher.pread0(Native Method) sun.nio.ch.FileDispatcher.pread(FileDispatcher.java:43) sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:207) sun.nio.ch.IOUtil.read(IOUtil.java:183) sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:642) org.apache.lucene.store.NIOFSDirectory$NIOFSIndexInput.readInternal(NIOFSDirectory.java:162) org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:156) org.apache.lucene.index.CompoundFileReader$CSIndexInput.readInternal(CompoundFileReader.java:275) org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.java:270) org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.java:40) org.apache.lucene.store.DataInput.readVInt(DataInput.java:107) org.apache.lucene.store.BufferedIndexInput.readVInt(BufferedIndexInput.java:217) org.apache.lucene.index.SegmentTermDocs.next(SegmentTermDocs.java:121) org.apache.lucene.index.SegmentTermPositions.next(SegmentTermPositions.java:103) org.apache.lucene.search.spans.TermSpans.next(TermSpans.java:49) AND - java.io.IOException: Stale NFS file handle sun.nio.ch.FileDispatcher.pread0(Native Method) sun.nio.ch.FileDispatcher.pread(FileDispatcher.java:43) sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:207) sun.nio.ch.IOUtil.read(IOUtil.java:183) sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:642) org.apache.lucene.store.NIOFSDirectory$NIOFSIndexInput.readInternal(NIOFSDirectory.java:162) org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:156) org.apache.lucene.index.CompoundFileReader$CSIndexInput.readInternal(CompoundFileReader.java:275) org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.java:270) org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.java:40) org.apache.lucene.store.DataInput.readVInt(DataInput.java:107) org.apache.lucene.store.BufferedIndexInput.readVInt(BufferedIndexInput.java:217) org.apache.lucene.index.TermBuffer.read(TermBuffer.java:64) org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:133) org.apache.lucene.index.SegmentTermEnum.scanTo(SegmentTermEnum.java:174) org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:236) org.apache.lucene.index.TermInfosReader.terms(TermInfosReader.java:304) org.apache.lucene.index.SegmentReader.terms(SegmentReader.java:473) org.apache.lucene.index.DirectoryReader$MultiTermEnum.<init>(DirectoryReader.java:1086) org.apache.lucene.index.DirectoryReader.terms(DirectoryReader.java:698) org.apache.lucene.search.TermRangeTermEnum.<init>(TermRangeTermEnum.java:93) org.apache.lucene.search.TermRangeQuery.getEnum(TermRangeQuery.java:135) The customer is running on Linux 64, OS version: 2.6.18-371.8.1.el5 I saw in different forums that this might have to do with the lock factory, but we are using SimpleFSLockFactory.... Currently they are running on lucene 3.6.0 but previously they were on lucene 3.0.2/ lucene 3.0.3, so the collections they are searching might have been created with an older version. We have asked them to run checkIndex to rule out corruption, but we haven't heard back yet. Any idea what might be wrong here, or how can we help them? Thanks in advance ! Shlomit