the amazing tales of the search for the invisible man! or, where's my gc root

Ken--@newsgroupstats.hk dragonken at gmail.com
Tue Apr 14 08:04:57 PDT 2009


Hi,

What are your jvm startup options?

Have you try press the "GC" button in JConsole and see those garbage can be
collected?

Have you turn on DisableExplicitGC? If so, try to invoke a command to your
jvm to see those garbage can be collected?

jmap -histo:live [pid]

Regards,
Ken




Jed Wesley-Smith wrote:
> 
> all,
> 
> I am writing to this list in some desperation hoping for some expert 
> advice. We (the JIRA development team at Atlassian) have been hunting 
> memory leaks for some weeks and in the process have tracked down and 
> removed every possible reference to a large section of memory (a plugin 
> framework) that we could find. Starting with all strong references and 
> proceeding to remove soft and weak references - even things like 
> clearing the java.lang.reflect.Proxy cache - and even Finalizer 
> references until both YourKit, Eclipse MAT, JProfiler and jhat all 
> report that the memory in question is dead and should be collectable, 
> but inexplicably _the JVM still holds on to it_. There are no JNI Global 
> references either, yet this memory remains uncollectable!
> 
> This happens for the 1.5 and 1.6 JVMs on Linux and Mac, and the IBM 1.6 
> JDK on Linux.
> 
> So my question is, how on earth do I search for what is referencing this 
> uncollectable memory? Are there any other tools that can help find why 
> this memory is not collected? Can I query the VM directly somehow?
> 
> I fear this is a JVM GC bug as no known memory analysis tool can find 
> the heap root (i.e. according to "the rules" there is no heap root). Are 
> there any known GC memory leaks caused by ClassLoaders being dropped for 
> instance?
> 
> The application is creating and disposing of a lot of ClassLoaders via 
> OSGi (Apache Felix) with Spring OSGi. It creates a lot of 
> java.lang.reflect.Proxy class instances.
> 
> We have written this up and added an example heap dump here:
> http://jira.atlassian.com/browse/JRA-16932
> 
> Having come to the end of our tethers here, if anyone can help in any 
> way it would be massively appreciated.
> 
> cheers,
> Jed Wesley-Smith
> JIRA Team @ Atlassian
> 
> 

-- 
View this message in context: http://www.nabble.com/the-amazing-tales-of-the-search-for-the-invisible-man%21-or%2C-where%27s-my-gc-root-tp23033233p23041258.html
Sent from the OpenJDK Hotspot Garbage Collection mailing list archive at Nabble.com.




More information about the hotspot-gc-dev mailing list