[ 
https://issues.apache.org/jira/browse/FELIX-4418?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chetan Mehrotra closed FELIX-4418.
----------------------------------

    Resolution: Not A Problem

Framework currently marks the {{m_isDisposed}} to true for the wiring 
associated with the classloader. So running following query in VisualVM OQL 
yields the leaking classloaders 

{noformat}
select 
    toHtml(cl) 
from   org.apache.felix.framework.BundleWiringImpl$BundleClassLoaderJava5 cl 
where 
    cl.m_wiring.m_isDisposed==true
{noformat}

> 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