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)

Reply via email to