lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Uwe Schindler (JIRA)" <>
Subject [jira] [Commented] (LUCENE-5673) MmapDirectory shouldn't pass along OOM wrapped as IOException
Date Fri, 16 May 2014 12:52:15 GMT


Uwe Schindler commented on LUCENE-5673:

I tried the latest patch with Linux 32 bit and an {{ulimit -v 1_000_000}}:

   [junit4] ERROR    132s | Test4GBStoredFields.test <<<
   [junit4]    > Throwable #1: Map failed: MMapIndexInput(path="/media/sf_Host/Projects/lucene/trunk-lusolr1/lucene/build/core/test/J0/lucene.index.Test4GBStoredFields-C16129C282E2746E-001/4GBStoredFields-001/_0.fdt")
[this may be caused by lack of enough unfragmented virtual address space or too restrictive
virtual memory limits enforced by the operating system, preventing us to map a chunk of 268435456
bytes. MMapDirectory should only be used on 64bit platforms, because the address space on
32bit operating systems is too small. More information:]
   [junit4]    > 	at __randomizedtesting.SeedInfo.seed([C16129C282E2746E:493516182C1E1996]:0)
   [junit4]    > 	at
   [junit4]    > 	at
   [junit4]    > 	at$MMapIndexInput.<init>(
   [junit4]    > 	at
   [junit4]    > 	at
   [junit4]    > 	at
   [junit4]    > 	at
   [junit4]    > 	at org.apache.lucene.index.IndexWriter.createCompoundFile(
   [junit4]    > 	at org.apache.lucene.index.DocumentsWriterPerThread.sealFlushedSegment(
   [junit4]    > 	at org.apache.lucene.index.DocumentsWriterPerThread.flush(
   [junit4]    > 	at org.apache.lucene.index.DocumentsWriter.doFlush(
   [junit4]    > 	at org.apache.lucene.index.DocumentsWriter.flushAllThreads(
   [junit4]    > 	at org.apache.lucene.index.IndexWriter.doFlush(
   [junit4]    > 	at org.apache.lucene.index.IndexWriter.flush(
   [junit4]    > 	at org.apache.lucene.index.IndexWriter.forceMerge(
   [junit4]    > 	at org.apache.lucene.index.IndexWriter.forceMerge(
   [junit4]    > 	at org.apache.lucene.index.Test4GBStoredFields.test(
   [junit4]    > 	at

> MmapDirectory shouldn't pass along OOM wrapped as IOException
> -------------------------------------------------------------
>                 Key: LUCENE-5673
>                 URL:
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Robert Muir
>         Attachments: LUCENE-5673.patch, LUCENE-5673.patch, LUCENE-5673.patch, LUCENE-5673.patch
> The bug here is in java (not MMapDir), but i think we shoudl do something.
> Users get confused when they configure their JVM to trigger something on OOM, and then
see "OutOfMemoryError: Map Failed": but their trigger doesnt fire.
> Thats because in the jdk, when it maps files it catches OutOfMemoryError, asks for a
garbage collection, sleeps for 100 milliseconds, then tries to map again. if it fails a second
time it wraps the OOM in a generic IOException.
> I think we should add a try/catch to our

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message