lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Per Steffensen <st...@designware.dk>
Subject Re: AW: AW: java.lang.OutOfMemoryError: Map failed
Date Tue, 02 Apr 2013 11:09:01 GMT
I have seen the exact same on Ubuntu Server 12.04. It helped adding some 
swap space, but I do not understand why this is necessary, since OS 
ought to just use the actual memory mapped files if there is not room in 
(virtual) memory, swapping pages in and out on demand. Note that I saw 
this for memory mapped files opened for read+write - not in the exact 
same context as you see it where MMapDirectory is trying to map memory 
mapped files.

If you find a solution/explanation, please post it here. I really want 
to know more about why FileChannel.map can cause OOM. I do not think the 
OOM is a "real" OOM indicating no more space on java heap, but is more 
an exception saying that OS has no more memory (in some interpretation 
of that).

Regards, Per Steffensen

On 4/2/13 11:32 AM, Arkadi Colson wrote:
> It is running as root:
>
> root@solr01-dcg:~# ps aux | grep tom
> root      1809 10.2 67.5 49460420 6931232 ?    Sl   Mar28 706:29 
> /usr/bin/java 
> -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties 
> -server -Xms2048m -Xmx6144m -XX:PermSize=64m -XX:MaxPermSize=128m 
> -XX:+UseG1GC -verbose:gc -Xloggc:/solr/tomcat-logs/gc.log 
> -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Duser.timezone=UTC 
> -Dfile.encoding=UTF8 -Dsolr.solr.home=/opt/solr/ -Dport=8983 
> -Dcollection.configName=smsc -DzkClientTimeout=20000 
> -DzkHost=solr01-dcg.intnet.smartbit.be:2181,solr01-gs.intnet.smartbit.be:2181,solr02-dcg.intnet.smartbit.be:2181,solr02-gs.intnet.smartbit.be:2181,solr03-dcg.intnet.smartbit.be:2181,solr03-gs.intnet.smartbit.be:2181

> -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
> -Dcom.sun.management.jmxremote 
> -Dcom.sun.management.jmxremote.port=9999 
> -Dcom.sun.management.jmxremote.ssl=false 
> -Dcom.sun.management.jmxremote.authenticate=false 
> -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath 
> /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar 
> -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat 
> -Djava.io.tmpdir=/usr/local/tomcat/temp 
> org.apache.catalina.startup.Bootstrap start
>
> Arkadi
>
> On 04/02/2013 11:29 AM, André Widhani wrote:
>> The output is from the root user. Are you running Solr as root?
>>
>> If not, please try again using the operating system user that runs Solr.
>>
>> André
>> ________________________________________
>> Von: Arkadi Colson [arkadi@smartbit.be]
>> Gesendet: Dienstag, 2. April 2013 11:26
>> An: solr-user@lucene.apache.org
>> Cc: André Widhani
>> Betreff: Re: AW: java.lang.OutOfMemoryError: Map failed
>>
>> Hmmm I checked it and it seems to be ok:
>>
>> root@solr01-dcg:~# ulimit -v
>> unlimited
>>
>> Any other tips or do you need more debug info?
>>
>> BR
>>
>> On 04/02/2013 11:15 AM, André Widhani wrote:
>>> Hi Arkadi,
>>>
>>> this error usually indicates that virtual memory is not sufficient 
>>> (should be "unlimited").
>>>
>>> Please see 
>>> http://comments.gmane.org/gmane.comp.jakarta.lucene.solr.user/69168
>>>
>>> Regards,
>>> André
>>>
>>> ________________________________________
>>> Von: Arkadi Colson [arkadi@smartbit.be]
>>> Gesendet: Dienstag, 2. April 2013 10:24
>>> An: solr-user@lucene.apache.org
>>> Betreff: java.lang.OutOfMemoryError: Map failed
>>>
>>> Hi
>>>
>>> Recently solr crashed. I've found this in the error log.
>>> My commit settings are loking like this:
>>>         <autoCommit>
>>>           <maxTime>10000</maxTime>
>>>           <openSearcher>false</openSearcher>
>>>         </autoCommit>
>>>
>>>           <autoSoftCommit>
>>>             <maxTime>2000</maxTime>
>>>           </autoSoftCommit>
>>>
>>> The machine has 10GB of memory. Tomcat is running with -Xms2048m 
>>> -Xmx6144m
>>>
>>> Versions
>>> Solr: 4.2
>>> Tomcat: 7.0.33
>>> Java: 1.7
>>>
>>> Anybody any idea?
>>>
>>> Thx!
>>>
>>> Arkadi
>>>
>>> SEVERE: auto commit error...:org.apache.solr.common.SolrException: 
>>> Error
>>> opening new searcher
>>>            at
>>> org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1415)
>>>            at 
>>> org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1527)
>>>            at
>>> org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:562)

>>>
>>>            at 
>>> org.apache.solr.update.CommitTracker.run(CommitTracker.java:216)
>>>            at
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>>>            at
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>>            at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>>            at
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)

>>>
>>>            at
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)

>>>
>>>            at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

>>>
>>>            at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

>>>
>>>            at java.lang.Thread.run(Thread.java:722)
>>> Caused by: java.io.IOException: Map failed
>>>            at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:849)
>>>            at
>>> org.apache.lucene.store.MMapDirectory.map(MMapDirectory.java:283)
>>>            at
>>> org.apache.lucene.store.MMapDirectory$MMapIndexInput.<init>(MMapDirectory.java:228)

>>>
>>>            at
>>> org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:195)
>>>            at
>>> org.apache.lucene.store.NRTCachingDirectory.openInput(NRTCachingDirectory.java:232)

>>>
>>>            at
>>> org.apache.lucene.codecs.compressing.CompressingStoredFieldsReader.<init>(CompressingStoredFieldsReader.java:96)

>>>
>>>            at
>>> org.apache.lucene.codecs.compressing.CompressingStoredFieldsFormat.fieldsReader(CompressingStoredFieldsFormat.java:113)

>>>
>>>            at
>>> org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:147)

>>>
>>>            at
>>> org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:56)
>>>            at
>>> org.apache.lucene.index.ReadersAndLiveDocs.getReader(ReadersAndLiveDocs.java:121)

>>>
>>>            at
>>> org.apache.lucene.index.BufferedDeletesStream.applyDeletes(BufferedDeletesStream.java:269)

>>>
>>>            at
>>> org.apache.lucene.index.IndexWriter.applyAllDeletes(IndexWriter.java:2961) 
>>>
>>>            at
>>> org.apache.lucene.index.IndexWriter.maybeApplyDeletes(IndexWriter.java:2952)

>>>
>>>            at
>>> org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:368)
>>>            at
>>> org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:270)

>>>
>>>            at
>>> org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:255)

>>>
>>>            at
>>> org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:249)

>>>
>>>            at
>>> org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1353)
>>>            ... 11 more
>>> Caused by: java.lang.OutOfMemoryError: Map failed
>>>            at sun.nio.ch.FileChannelImpl.map0(Native Method)
>>>            at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:846)
>>>            ... 28 more
>>>
>>>
>>> SEVERE: auto commit error...:java.lang.IllegalStateException: this
>>> writer hit an OutOfMemoryError; cannot commit
>>>            at
>>> org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:2661)

>>>
>>>            at
>>> org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2827) 
>>>
>>>            at
>>> org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2807)
>>>            at
>>> org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:541)

>>>
>>>            at 
>>> org.apache.solr.update.CommitTracker.run(CommitTracker.java:216)
>>>            at
>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>>>            at
>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
>>>            at java.util.concurrent.FutureTask.run(FutureTask.java:166)
>>>            at
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)

>>>
>>>            at
>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)

>>>
>>>            at
>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

>>>
>>>            at
>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

>>>
>>>            at java.lang.Thread.run(Thread.java:722)
>>>
>>>
>>>
>>>
>>
>>
>
>


Mime
View raw message