lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lance Norskog <goks...@gmail.com>
Subject Re: java.lang.OutOfMemoryError: PermGen space when reopening solr server
Date Thu, 02 Sep 2010 06:51:12 GMT
Loading a servlet creates a bunch of classes via reflection. These are
in PermGen and never go away. If you load&unload over and over again,
any PermGen setting will fill up.

On Wed, Sep 1, 2010 at 2:23 PM, Luke Tebbs <luke@staffing-systems.co.uk> wrote:
>
> Have you tried to up the MaxHeapSize?
>
> I tend to run solr and the development instance in a separate jetty (on a
> separate port) and actually restart the web server for the dev application
> every now and again.
> It doesn't take too long if you only have one webapp on jetty - I tend to
> use mvn jetty:run on the CLI rather than launch jetty in eclipse. I also use
> JRebel to reduce the number of restarts needed during dev.
>
> As for a production instance, should you need to redeploy that often?
>
> Luke
>
> Antonio Calo' wrote:
>>
>>  Hi guys
>>
>> I'm facing an error in our production environment with our search
>> application based on maven with spring + solrj.
>>
>> When I try to change a class, or try to redeploy/restart an application, I
>> catch a java.lang.OutOfMemoryError: PermGen
>>
>> I've tryed to understand the cause of this and also I've succeded in
>> reproducing this issue on my local develop environment by just restarting
>> the jetty several time (I'm using eclipse + maven plugin).
>>
>> The logs obtained are those:
>>
>>   [...]
>>   1078 [Timer-1] INFO org.apache.solr.core.RequestHandlers - created
>>   /admin/: org.apache.solr.handler.admin.AdminHandlers
>>   1078 [Timer-1] INFO org.apache.solr.core.RequestHandlers - created
>>   /admin/ping: PingRequestHandler
>>   1078 [Timer-1] INFO org.apache.solr.core.RequestHandlers - created
>>   /debug/dump: solr.DumpRequestHandler
>>   32656 [Finalizer] INFO org.apache.solr.core.SolrCore - []  CLOSING
>>   SolrCore org.apache.solr.core.SolrCore@1409c28
>>   17:43:19 ERROR InvertedIndexEngine:124 open -
>>   java.lang.OutOfMemoryError: PermGen space
>>   java.lang.RuntimeException: java.lang.OutOfMemoryError: PermGen space
>>        at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1068)
>>        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:579)
>>        at
>>
>> org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:137)
>>        at
>>
>> com.intellisemantic.intellifacet.resource.invertedIndex.InvertedIndexEngine.open(InvertedIndexEngine.java:113)
>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>        at
>>
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>        at
>>
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>        at java.lang.reflect.Method.invoke(Method.java:597)
>>        at
>>
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1536)
>>        at
>>
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1477)
>>        at
>>
>> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
>>   [...]
>>
>> The exception is always thrown while solr init is performed after a
>> restart (this is the reason why I'm asking your support ;) )
>>
>> It seems that while solr is trying to be set up (by [Timer-1]), another
>> thread ([Finalizer]) is trying to close it. I can see from the Solr code
>> that this exception is thrown always in the same place: SolrCore.java:1068.
>> Here there is a comment that say:
>>
>>   // need to close the searcher here??? we shouldn't have to.
>>          throw new RuntimeException(th);
>>        } finally {
>>          if (newestSearcher != null) {
>>            newestSearcher.decref();
>>          }
>>        }
>>
>> I'm using slorj lib in a Spring container, so I'm supposing that Spring
>> will manage the relase of all the singleton classes. Should I do something
>> other like force closing solr?
>>
>> Thanks in advance for your support.
>>
>> Best regards
>>
>> Antonio
>>
>
>



-- 
Lance Norskog
goksron@gmail.com

Mime
View raw message