On 4/24/2012 5:13 PM, Bill Au wrote:

Wow, something I'm actually qualified to talk about on this list! :)

> Out of PermGen space is almost always caused by a classloader leak which
> occurs when a webapp is reloaded.  It could be caused by either your own
> code, third-party code, or in some case Java core classes.

I debug PermGen errors quite a bit. Some of our apps have a cache of 
dynamically generated classes (Drools does this) that, if held onto long 
enough, will make the the JVM run out of PermGen. This isn't really a 
mistake, it's just how it works, sadly.

> You need to take heap dumps before and after webapp reload and use a
> heap analyzer to see what is holding onto the leaked classloader(s).

That's how I debug them. Take a series of heap dumps and start comparing 
the differences between them -- YourKit even makes this easy for you 
with a tool that diffs heap dumps.

- Matt

resin-interest mailing list

Reply via email to