Hi,

 

We have an application using Lucene 2.2.0 running in a Sun HotSpot JVM,
with JDK 1.6.0. We have had no problems with it in the 32-bit version of
the JVM. We recently upgraded to 64-bit JVM and occasionally, we are
observing a hang. In particular, the stack trace looks like this - the
RandomAccessFile.read() does not return ever - multiple stack traces are
hung on this, pointing to no bytes available to read for specific hits
returned by the searcher. We are aware of issue:
https://issues.apache.org/jira/browse/LUCENE-1262 which has a similar
stack trace. Is this a known problem or issue?

 

java.lang.Throwable

            at java.io.RandomAccessFile.readBytes(Native Method)

            at java.io.RandomAccessFile.read(RandomAccessFile.java:322)

            at
org.apache.lucene.store.FSDirectory$FSIndexInput.readInternal(FSDirector
y.java:550)

            at
org.apache.lucene.store.BufferedIndexInput.readBytes(BufferedIndexInput.
java:122)

            at
org.apache.lucene.index.CompoundFileReader$CSIndexInput.readInternal(Com
poundFileReader.java:240)

            at
org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.jav
a:143)

            at
org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.j
ava:38)

            at
org.apache.lucene.store.IndexInput.readChars(IndexInput.java:107)

            at
org.apache.lucene.store.IndexInput.readString(IndexInput.java:93)

            at
org.apache.lucene.index.FieldsReader.addField(FieldsReader.java:253)

            at
org.apache.lucene.index.FieldsReader.doc(FieldsReader.java:121)

            at
org.apache.lucene.index.SegmentReader.document(SegmentReader.java:346)

            at
org.apache.lucene.index.MultiReader.document(MultiReader.java:117)

            at
org.apache.lucene.index.MultiReader.document(MultiReader.java:106)

            at
org.apache.lucene.index.IndexReader.document(IndexReader.java:437)

 

The call is something like:

 

              try {

                  IndexReader indexReader = getLuIndexReader();

                  if (indexReader.isDeleted(docId) || docId >=
indexReader.maxDoc())

                        return null;

                  lu_Document = lu_indexReader.document(docId);

                  return lu_Document;

              } catch (IOException e) {

                  ...

  }

Thanks,

 

-venkat

 

Reply via email to