[
https://issues.jboss.org/browse/JGRP-1410?page=com.atlassian.jira.plugin....
]
Vyacheslav Mishcheryakov commented on JGRP-1410:
------------------------------------------------
Unfortunally bug still be reproduced. We use tomcat and Plumbr for checking the leaks.
Moving global thread group from static variable to non-static resolves only one issue. The
other is that (from what I see) created thread group is never destroyed. So it still
exists as a link in system threadgroup (don't remember exact name) and since it has a
link to classloader (which has links to all classes that were loaded) this causes memory
leak after application restart (Java VisualVM profile shows this also).
globalThreadGroup not destroyed creates a classloader memory leak
-----------------------------------------------------------------
Key: JGRP-1410
URL:
https://issues.jboss.org/browse/JGRP-1410
Project: JGroups
Issue Type: Bug
Affects Versions: 3.0.1
Environment: linux w/ java 1.6
Reporter: Jean-Philippe Gariepy
Assignee: Bela Ban
Fix For: 3.1
When all channels are closed, the globalThreadGroup is not destroyed. For a normal (i.e.
non-web) application, this is not a problem since the process will exit anyway. However,
for a Java Enterprise web application, this causes a classloader memory leak since the
ThreadGroup object has strong references to JGroups instances having strong references to
their class object having strong reference to their class loader. Since the class loader
is pointed by strong references, the it cannot be garbage collected and hence a leak is
created each time the web application is stopped.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira