I've been battling a variety of ClassLoader-based memory leaks that occur during the deploy/undeploy of DayTrader. With the patches for the following
problems, I no longer see MultiParentClassLoaders being leaked:

http://issues.apache.org/jira/browse/GERONIMO-1125 (patch just posted)
http://issues.apache.org/jira/browse/GERONIMO-1118 (fix committed)
http://issues.apache.org/jira/browse/AXIS-2232 (Old patch didn't fix the problem. I've attached a new patch that fixes the problem. Yet to be committed)
http://issues.apache.org/jira/browse/AXIS-2278 (Fix committed, but not picked up by Geronimo build)

Deployment of DayTrader is still leaking memory (but only 200 kbytes per deploy/undeploy cycle. "only" is a relative term... ;-). So, there's still work to be done.

Finally, there is an intermittent problem which will cause a Thread to temporarily hold on to a ClassLoader. Since the problem is intermittent and temporary, I'm not actively pursuing. I'll document the problem in a jira, but here's the chain of references keeping the ClassLoader alive... The Thread is in the RMI Runtime ThreadGroup.

java.lang.Thread.inheritedAccessControlContext -->
   java.security.AccessControlContext.context -->
      java.security.ProtectionDomain[4] -->
         java.security.ProtectionDomain.classLoader -->
            org.apache.geronimo.kernel.config.MultiParentClassLoader

--kevan


Reply via email to