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
[email protected]
http://maillist.caucho.com/mailman/listinfo/resin-interest