You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by "Schwenker, Stephen" <SS...@thestar.ca> on 2006/04/26 15:19:55 UTC

java.io.IOException: Stale NFS file handle

Hey,
 
I'm running into this exception with my lucene searching.  We have a cluster of 2 servers that execute searches and one server in the back end that writes to the index.  I thought that setting up the external boxes on nfs would be alright since searching doesn't require locking.  Can anyone tell me why this may be happening and possibly suggest a fix for the solution?  I've already tried setting -Dorg.apache.lucene.lockDir=/tmp in the JVM args but it doesn't seem to do the job.
 
I have also considdered local filesystems on each cluster member but the index is updated frequently and would need to be mirrored too often for it to be worth while.  Any suggestions would be helpful.
 
Thank you,
 
 
Steve.
 
 
Here is the stack trace in case you need it.
 
2006-04-26 08:57:36,160 INFO  [STDOUT] java.io.IOException: Stale NFS file handle
2006-04-26 08:57:36,163 INFO  [STDOUT]  at java.io.RandomAccessFile.readBytes(Native Method)
2006-04-26 08:57:36,164 INFO  [STDOUT]  at java.io.RandomAccessFile.read(RandomAccessFile.java:315)
2006-04-26 08:57:36,164 INFO  [STDOUT]  at org.apache.lucene.store.FSIndexInput.readInternal(FSDirectory.java:449)
2006-04-26 08:57:36,165 INFO  [STDOUT]  at org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:45)
2006-04-26 08:57:36,166 INFO  [STDOUT]  at org.apache.lucene.index.CompoundFileReader$CSIndexInput.readInternal(CompoundFileReader.java:219)
2006-04-26 08:57:36,166 INFO  [STDOUT]  at org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.java:64)
2006-04-26 08:57:36,167 INFO  [STDOUT]  at org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.java:33)
2006-04-26 08:57:36,167 INFO  [STDOUT]  at org.apache.lucene.store.IndexInput.readVInt(IndexInput.java:56)
2006-04-26 08:57:36,168 INFO  [STDOUT]  at org.apache.lucene.index.TermBuffer.read(TermBuffer.java:62)
2006-04-26 08:57:36,169 INFO  [STDOUT]  at org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:117)
2006-04-26 08:57:36,170 INFO  [STDOUT]  at org.apache.lucene.index.SegmentTermEnum.scanTo(SegmentTermEnum.java:148)
2006-04-26 08:57:36,170 INFO  [STDOUT]  at org.apache.lucene.index.TermInfosReader.scanEnum(TermInfosReader.java:157)
2006-04-26 08:57:36,171 INFO  [STDOUT]  at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:151)
2006-04-26 08:57:36,172 INFO  [STDOUT]  at org.apache.lucene.index.SegmentReader.docFreq(SegmentReader.java:300)
2006-04-26 08:57:36,173 INFO  [STDOUT]  at org.apache.lucene.search.IndexSearcher.docFreq(IndexSearcher.java:78)
2006-04-26 08:57:36,173 INFO  [STDOUT]  at org.apache.lucene.search.Similarity.idf(Similarity.java:255)
2006-04-26 08:57:36,174 INFO  [STDOUT]  at org.apache.lucene.search.TermQuery$TermWeight.<init>(TermQuery.java:43)
2006-04-26 08:57:36,175 INFO  [STDOUT]  at org.apache.lucene.search.TermQuery.createWeight(TermQuery.java:142)
2006-04-26 08:57:36,175 INFO  [STDOUT]  at org.apache.lucene.search.BooleanQuery$BooleanWeight.<init>(BooleanQuery.java:203)
2006-04-26 08:57:36,176 INFO  [STDOUT]  at org.apache.lucene.search.BooleanQuery$BooleanWeight2.<init>(BooleanQuery.java:330)
2006-04-26 08:57:36,177 INFO  [STDOUT]  at org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:372)
2006-04-26 08:57:36,177 INFO  [STDOUT]  at org.apache.lucene.search.Query.weight(Query.java:93)
2006-04-26 08:57:36,178 INFO  [STDOUT]  at org.apache.lucene.search.Hits.<init>(Hits.java:48)
2006-04-26 08:57:36,179 INFO  [STDOUT]  at org.apache.lucene.search.Searcher.search(Searcher.java:53)

Re: java.io.IOException: Stale NFS file handle

Posted by Otis Gospodnetic <ot...@yahoo.com>.
Steve,

There are some locks involved in search, like the one that gets written to the FS before the readers reads all the segment/index files listed in segments file.  Once they are all read, the lock is released.  Setting lock dir to the local /tmp doesn't sound good, as locks have to be in the common location in order for them to have the desired locking effect.

As for suggestion for large frequently updated indices - have you considered NAS?

Otis

----- Original Message ----
From: "Schwenker, Stephen" <SS...@thestar.ca>
To: java-user@lucene.apache.org
Sent: Wednesday, April 26, 2006 9:19:55 AM
Subject: java.io.IOException: Stale NFS file handle

Hey,
 
I'm running into this exception with my lucene searching.  We have a cluster of 2 servers that execute searches and one server in the back end that writes to the index.  I thought that setting up the external boxes on nfs would be alright since searching doesn't require locking.  Can anyone tell me why this may be happening and possibly suggest a fix for the solution?  I've already tried setting -Dorg.apache.lucene.lockDir=/tmp in the JVM args but it doesn't seem to do the job.
 
I have also considdered local filesystems on each cluster member but the index is updated frequently and would need to be mirrored too often for it to be worth while.  Any suggestions would be helpful.
 
Thank you,
 
 
Steve.
 
 
Here is the stack trace in case you need it.
 
2006-04-26 08:57:36,160 INFO  [STDOUT] java.io.IOException: Stale NFS file handle
2006-04-26 08:57:36,163 INFO  [STDOUT]  at java.io.RandomAccessFile.readBytes(Native Method)
2006-04-26 08:57:36,164 INFO  [STDOUT]  at java.io.RandomAccessFile.read(RandomAccessFile.java:315)
2006-04-26 08:57:36,164 INFO  [STDOUT]  at org.apache.lucene.store.FSIndexInput.readInternal(FSDirectory.java:449)
2006-04-26 08:57:36,165 INFO  [STDOUT]  at org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.java:45)
2006-04-26 08:57:36,166 INFO  [STDOUT]  at org.apache.lucene.index.CompoundFileReader$CSIndexInput.readInternal(CompoundFileReader.java:219)
2006-04-26 08:57:36,166 INFO  [STDOUT]  at org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.java:64)
2006-04-26 08:57:36,167 INFO  [STDOUT]  at org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.java:33)
2006-04-26 08:57:36,167 INFO  [STDOUT]  at org.apache.lucene.store.IndexInput.readVInt(IndexInput.java:56)
2006-04-26 08:57:36,168 INFO  [STDOUT]  at org.apache.lucene.index.TermBuffer.read(TermBuffer.java:62)
2006-04-26 08:57:36,169 INFO  [STDOUT]  at org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:117)
2006-04-26 08:57:36,170 INFO  [STDOUT]  at org.apache.lucene.index.SegmentTermEnum.scanTo(SegmentTermEnum.java:148)
2006-04-26 08:57:36,170 INFO  [STDOUT]  at org.apache.lucene.index.TermInfosReader.scanEnum(TermInfosReader.java:157)
2006-04-26 08:57:36,171 INFO  [STDOUT]  at org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:151)
2006-04-26 08:57:36,172 INFO  [STDOUT]  at org.apache.lucene.index.SegmentReader.docFreq(SegmentReader.java:300)
2006-04-26 08:57:36,173 INFO  [STDOUT]  at org.apache.lucene.search.IndexSearcher.docFreq(IndexSearcher.java:78)
2006-04-26 08:57:36,173 INFO  [STDOUT]  at org.apache.lucene.search.Similarity.idf(Similarity.java:255)
2006-04-26 08:57:36,174 INFO  [STDOUT]  at org.apache.lucene.search.TermQuery$TermWeight.<init>(TermQuery.java:43)
2006-04-26 08:57:36,175 INFO  [STDOUT]  at org.apache.lucene.search.TermQuery.createWeight(TermQuery.java:142)
2006-04-26 08:57:36,175 INFO  [STDOUT]  at org.apache.lucene.search.BooleanQuery$BooleanWeight.<init>(BooleanQuery.java:203)
2006-04-26 08:57:36,176 INFO  [STDOUT]  at org.apache.lucene.search.BooleanQuery$BooleanWeight2.<init>(BooleanQuery.java:330)
2006-04-26 08:57:36,177 INFO  [STDOUT]  at org.apache.lucene.search.BooleanQuery.createWeight(BooleanQuery.java:372)
2006-04-26 08:57:36,177 INFO  [STDOUT]  at org.apache.lucene.search.Query.weight(Query.java:93)
2006-04-26 08:57:36,178 INFO  [STDOUT]  at org.apache.lucene.search.Hits.<init>(Hits.java:48)
2006-04-26 08:57:36,179 INFO  [STDOUT]  at org.apache.lucene.search.Searcher.search(Searcher.java:53)




---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org