|
Re: Need help to analyse result given by MAT [message #507924 is a reply to message #507875] |
Fri, 15 January 2010 08:54 |
Krum Tsvetkov Messages: 164 Registered: July 2009 |
Senior Member |
|
|
Hi,
This is a very interesting question.
I think the analysis you did is very good, but the problem seems to be tricky.
You found already that the classloaders are kept after the restart of the app, and you found one path to them - the one from the BirtEngine class. This class is marked as a GC root with the reason Native Heap, which should mean there is references somewhere from the native heap. And I can't tell why.
The Merged Shrotest paths gives you only one path per object. What you could try is to run Paths From GC roots on one of the objects and see if it will return you more paths. You can also look at the inbound references to a classloader (context menu, list objects -> with incoming references).
Howefer all these are just to search for another path, and will not answer the question why the BirtEngine classes are marked as "native heap" GC roots.
BTW, I remember I have seen some of my instances marked as "Native heap" and not removed as I was debugging, had a breakpoint on this place, and was using the "All Instances" context menu in the debugger. I couldn't explain it then. Were you by chance debugging when this happened?
Does this help in any way?
|
|
|
Re: Need help to analyse result given by MAT [message #507943 is a reply to message #507875] |
Fri, 15 January 2010 09:25 |
|
Thanks for your answer, it helps me a lot : it gives valuable information to explore different ways.
I will try that from now on
I am in remote debug mode and I have a jconcole connected to take dump. I will give a give a try now without that.
It seems that there is another path from GC roots, I will take a look deeper too.
Aurélien Pupier - Red Hat
Senior Software Engineer in Fuse Tooling team
|
|
|
|
Re: Need help to analyse result given by MAT [message #507963 is a reply to message #507875] |
Fri, 15 January 2010 10:43 |
|
OMG it seems that there are no more WebAppClassLoader retained when not be in remote debug mode and without the jconsole connected...
I connected via the JConsole only at the end of repeating several times(~20) the same operation to take the dump and it seems that there were no more leaks...
Howevert I noticed that there still be 2 BirtEngine not instanciated but perhaps the GC is not passed onto it yet.
Another thing that seems to be strange is that the memory usage displayed by Windows Task Manager is increasing a little amount at each time.
But without debug mode it is hard to see exactly what happened. I hope that it is good.
Thanks for your great help
Aurélien Pupier - Red Hat
Senior Software Engineer in Fuse Tooling team
|
|
|
|
Powered by
FUDForum. Page generated in 0.03143 seconds