No code changes between running in Java 6 and Java 8. The same code still
runs successfully with Java 6 while is failing with Java 8.

On Feb 22, 2017 5:52 PM, "Frederik Van Hoyweghen" <
frederik.vanhoyweg...@chapoo.com> wrote:

Did you make any changes to your code between running on java 6 and 8?
The java file API has changed considerably since java 8.

If you -have- rewritten some of the file handling code in your indexing
process, make sure to explicitly close the streams you create, or use the
(since java 7) try-with-resources construct.


On 22/02/2017 16:18, Leonid Bolshinsky wrote:

> I have a search engine based on Lucene 3.0.3 and I can't change the Lucene
> version for reasons that are out of scope of this question. Now I have a
> requirement to move from Java 6 to Java 8, however when I run the indexing
> using Java 8 JVM, I hit "Too many open files issue" as below:
>
> java.io.FileNotFoundException: /myIndex/_27c.fdx (Too many open files)
>      at java.io.RandomAccessFile.open0(Native Method)
>      at java.io.RandomAccessFile.open(RandomAccessFile.java:333)
>      at java.io.RandomAccessFile.<init>(RandomAccessFile.java:257)
>      at org.apache.lucene.store.SimpleFSDirectory$SimpleFSIndexOutpu
> t.<init>(SimpleFSDirectory.java:180)
>      at org.apache.lucene.store.NIOFSDirectory.createOutput(NIOFSDir
> ectory.java:85)
>      at org.apache.lucene.index.FieldsWriter.<init>(FieldsWriter.java:86)
>      at org.apache.lucene.index.StoredFieldsWriter.initFieldsWriter(
> StoredFieldsWriter.java:66)
>      at org.apache.lucene.index.StoredFieldsWriter.finishDocument(St
> oredFieldsWriter.java:144)
>      at org.apache.lucene.index.StoredFieldsWriter$PerDoc.finish(
> StoredFieldsWriter.java:192)
>      at org.apache.lucene.index.DocumentsWriter$WaitQueue.writeDocum
> ent(DocumentsWriter.java:1559)
>      at org.apache.lucene.index.DocumentsWriter$WaitQueue.add(Docume
> ntsWriter.java:1578)
>      at org.apache.lucene.index.DocumentsWriter.finishDocument(Docum
> entsWriter.java:1155)
>      at org.apache.lucene.index.DocumentsWriter.updateDocument(Docum
> entsWriter.java:832)
>      at org.apache.lucene.index.DocumentsWriter.updateDocument(Docum
> entsWriter.java:807)
>      at org.apache.lucene.index.IndexWriter.updateDocument(IndexWrit
> er.java:2155)
>
> The ulimit on my system is 80.000 files and when I run lsof, I get that the
> open files belong to the index and they are marked as (deleted) segments. I
> am aware that there are tons of questions, answers and blogs about the
> Lucene open files issue, however:
>
>     - I've already tried whatever is recommended (review the code looking
>
>     for open IndexWriters, increase ulimit, enable compound mode, decrease
> the
>     number of segments from 10 to 4, review the code for open files)
> without
>     success and
>     - The issue didn't appear with Java 6 so I am guessing that the problem
>
>     is in how Java 8 handles files.
>
> Anybody faced this issue with Java 8 before? Any additional idea about how
> to further troubleshoot this issue or what could be the cause?
>
>

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

Reply via email to