I've been having a look at our PermGen issues.

Whilst I have not got to the cause of the problem I have ruled out the
new use of the Felix OSGi container. Typicall PermGen OOM issues are
caused by creating a lot of class loaders. The fact that we start and
stop the inVM broker a lot means felix gets a chance to create lots of
classloaders. However, the permgen probem still occurs if we disable
felix (causing thoses tests that require it to fail).

If you want to take a look at what is in the PermGen I believe the
heap dump should contain details, which you can get using:
export ANT_OPTS="--XX:+HeapDumpOnOutOfMemoryError"

in the mean time I've just increased the PermGen size locally as follows:
export ANT_OPTS=-XX:MaxPermSize=256M

There are a number of things that are stored in PermGen beyond
classes, things like String.iterns. So hopefully we can make our tests
clean up better so we don't have to set an ANT_OPT value. One
alternative would be to change our ant iterate task to fork a new vm
for each module. Though this will slow the test cycle down and only
delay the problem if it is down to the way the systests operate.


-- 
Martin Ritchie

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to