Antonio Calo' wrote:
Il 02/09/2010 8.51, Lance Norskog ha scritto:
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.
I agree , taking a look to all the links suggested by Peter seems that
this exception could be caused by the memory leak. Also, it seems that
the CGLibe that manage the .class loading used by Spring have a big
issue about this.
I looked into this about 6 months ago (with regards to this problem
occurring with tomcat + spring, not jetty + solr) and found quite a bit
of information on the Spring Community Forums. There was (at the time)
no conclusive answer - it seemed CGLIB is used by just about everything
(hibernate, AOP, tomcat, jetty) and that it has this latent defect.
Spring developers were basically saying it is due to CGLIB and there was
nothing that they were able to do about it.
In the end I switched to jetty (for quicker startup) and just accepted
restarting after every handful of redeploys.
CGLIB mailing lists (http://cglib.sourceforge.net/mail-lists.html) might
be a good place to start.
Maibe it is just an accident that it happens while opening a anew
solr instance.
I'll investigate about general Permgem fault, but if someone have a
suggestion on how to close solr server in a safe manner, you are
welcome!
Many thanks for your feedbacks.
Antonio