First, thank you Chris, Yonik, and Dan for your ideas as to what might be causing this problem.

I tried moving things around so that the IndexReader is still open when it calls TermFreqVector.getTerms()/TermFreqVector.getTermFrequencies(). It didn't seem to make any difference.

I also tried running Java with the flags:
-Xmx2048m -XX:MaxPermSize=200m
(the box has 4GB of RAM) and it still crashes. It's hard to tell, but the program does seem to run for a lot longer (maybe 10 hours), but that could just be randomness in my tests.

The JVM always seems to crash with

 Current CompileTask:
 opto:1836
 org.apache.lucene.index.IndexReader$1.doBody()Ljava/lang/Object;
 (99 bytes)

which in the Lucene source is:

private static IndexReader open(final Directory directory, final boolean closeDirectory) throws IOException { synchronized (directory) { // in- & inter-process sync
      return (IndexReader)new Lock.With(
          directory.makeLock(IndexWriter.COMMIT_LOCK_NAME),
          IndexWriter.COMMIT_LOCK_TIMEOUT) {
          public Object doBody() throws IOException {
            SegmentInfos infos = new SegmentInfos();
            infos.read(directory);
            if (infos.size() == 1) {              // index is optimized
return SegmentReader.get(infos, infos.info(0), closeDirectory);
            }
            IndexReader[] readers = new IndexReader[infos.size()];
            for (int i = 0; i < infos.size(); i++)
              readers[i] = SegmentReader.get(infos.info(i));
return new MultiReader(directory, infos, closeDirectory, readers);

          }
        }.run();
    }
  }

that's definitely a non-trivial bit of code, but I can't imagine that there's a problem that I'm seeing that no one else else. Moreover, that code gets run hundreds or even thousands of times before it crashes, so I don't image it's being HotSpot-compiled for the first time.

I'm running the 1.4.3 release and the 1.5.0_06-b05 JVM on Centos Linux on an Opteron.

Any further guesses?

Thank you all very much,
Dan

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to