You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by "Kevan Miller (JIRA)" <de...@geronimo.apache.org> on 2005/10/12 06:10:05 UTC

[jira] Updated: (GERONIMO-983) Memory used by proxies isn't released by dereferencing the proxy (I speculate)

     [ http://issues.apache.org/jira/browse/GERONIMO-983?page=all ]

Kevan Miller updated GERONIMO-983:
----------------------------------

    Attachment: ReferenceIdentityMap.patch

This patch file allows Proxies to be GC'ed without explicit calls to destroyProxy(). The existing IdentityHashMap is replaced with a ReferenceIdentityMap from Commons Collections. The ReferenceIdentityMap is configured to use WeakReferences for the proxy "keys" -- allowing a proxy and associated MethodInterceptor to be GC'ed. Builds, tests/itests pass, and basic deploy/undeploy of web apps all work. I've also verified that proxies, MethodInterceptors, etc are being automatically reclaimed by GC.

I'll ping Dain to weigh in on this issue. It's time to get this closed out...

> Memory used by proxies isn't released by dereferencing the proxy (I speculate)
> ------------------------------------------------------------------------------
>
>          Key: GERONIMO-983
>          URL: http://issues.apache.org/jira/browse/GERONIMO-983
>      Project: Geronimo
>         Type: Bug
>   Components: console, kernel
>     Versions: 1.0-M5
>     Reporter: Aaron Mulder
>     Priority: Critical
>      Fix For: 1.0
>  Attachments: ConsoleFix.txt, ReferenceIdentityMap.patch, basicProxyManager.patch
>
> On Wed, 7 Sep 2005, Neal Sanche wrote:
> > I compiled up a new Geronimo, and then I left it running with the Server 
> > Info page displayed so I could see the cool AJX work there... and then I 
> > forgot about it for a day or so. When I got back it was saying:
> > 
> > 20:56:53,219 WARN  [ThreadedServer] EXCEPTION
> > java.lang.OutOfMemoryError: Java heap space                                     
> On Wed, 7 Sep 2005, Neal Sanche wrote:
> > Well, I did some profiling, and found that the predominant object that 
> > was being retained was:
> > 
> > org.apache.geronimo.kernel.basic.RawGetAttributeInvoker
> > 
> > There are also another slowly growing group of geronimo classes that
> > seem to pile up, and they aren't getting garbage collected either:
> > 
> > org.apache.geronimo.kernel.basic.ProxyMethodInterceptor and many 
> > internal classes of this class.
> The console uses lots of proxies and doesn't manually close them, just releases the references.  Seems like this leaks memory.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira