Chetan Mehrotra created FELIX-4418:
--------------------------------------
Summary: Mark Bundle classloaders which should have been garbage
collected
Key: FELIX-4418
URL: https://issues.apache.org/jira/browse/FELIX-4418
Project: Felix
Issue Type: Wish
Components: Framework
Reporter: Chetan Mehrotra
Priority: Minor
With OSgi its possible that a bundle gets refreshed/updated and thus creates
new classloaders. In ideal case the old classloaders should get garbage
collected and not be referred. However at times it happens that such
classloaders remain alive because proper cleanup on bundle decativation is not
performed. This leads to classloaders leak.
As framework knows when a BundleClassLoader becomes stale and a candidate for
GC it can mark such classloaders with some flag. This would help later in
analyzing the Heap dumps as one can query for such classloaders based on that
flag. This apprach has been used for example in Resin [1] where it marks such
classloaders with {{com.caucho.loader.ZombieClassLoaderMarker}}
We are using another approach with SLING-3359 where we have a bundle which
registers PhantomReference against the bundle classloaders and then determines
which classloader should have been garbage collected and hence are leak suspects
[1]
http://java.jiderhamn.se/2011/12/11/classloader-leaks-i-how-to-find-classloader-leaks-with-eclipse-memory-analyser-mat/
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)