Hello everyone, it seems that resin 4.0.23 suffers from a classloader leak. My application's classloader is prevented from being garbage collected.
Please have a look at the GC Roots of my applications classloader (after stopping the application and a full garbage collection): Class Name | Retained Heap --------------------------------------------------------------------------------------------------------------------------------- com.caucho.env.thread.ResinThread @ 0xe27c9a60 http://*:18443-14 Thread | 584 '- <Java Local> com.caucho.network.listen.TcpSocketLinkListener @ 0xe0b86878 | 2.976 '- _suspendAlarm com.caucho.util.Alarm @ 0xe279e330 | 760 '- <class> class com.caucho.util.Alarm @ 0xd03f86c0 | 480.928 '- _clock com.caucho.util.AlarmClock @ 0xe0aab790 | 480.720 '- _clockArray com.caucho.util.Alarm[60000] @ 0xe0ac4160 | 480.288 '- [15927] com.caucho.util.Alarm @ 0xe8467708 | 264 '- _contextLoader com.caucho.loader.EnvironmentClassLoader @ 0xe12f7718 | 151.424 '- parent com.caucho.loader.EnvironmentClassLoader @ 0xe11fbde8 | 483.344 '- _attributes java.util.concurrent.ConcurrentHashMap @ 0xe11bef38 | 392.408 '- segments java.util.concurrent.ConcurrentHashMap$Segment[16] @ 0xe11bef68 | 392.336 '- [1] java.util.concurrent.ConcurrentHashMap$Segment @ 0xe11c2a40 | 377.016 '- table java.util.concurrent.ConcurrentHashMap$HashEntry[2] @ 0xe11c2a88 | 376.920 '- [0] java.util.concurrent.ConcurrentHashMap$HashEntry @ 0xe11c2aa0 | 376.880 '- value com.caucho.jsp.el.JspApplicationContextImpl @ 0xe11bbac8 | 376.832 '- _webApp com.caucho.server.webapp.WebApp @ 0xe12103a8 | 84.256 '- _classLoader com.caucho.loader.EnvironmentClassLoader @ 0xe12108c0| 129.894.632 ---------------------------------------------------------------------------------------------------------------------------------- As you can see three EnvironmentClassLoaders are involved: 0xe12108c0, which is my application classloader (consuming 129 MB of the heap) 0xe11fbde8, which is the classloader with the id host:default 0xe12f7718, which is the classloader for the resin-admin application (which most probably is not important in this case) As you can see, the host:default classloader is still referencing my web application's classloader indirectly (by the entryCache_ Map, referencing to the com.caucho.jsp.el.JspApplicationContextImpl of my web application). What do I have to do to in order that my application classloader can be garbage collected? Thank you and best regards, Patric _______________________________________________ resin-interest mailing list resin-interest@caucho.com http://maillist.caucho.com/mailman/listinfo/resin-interest