cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Oliver <res1c...@verizon.net>
Subject Re: Continuations and memory leaks
Date Wed, 11 Feb 2004 15:34:05 GMT
Do you have global variables in your scripts?

Ugo Cei wrote:

> Christopher Oliver wrote:
>
>> Ugo Cei wrote:
>>
>>> I'm experiencing a memory leak in an application we are currently 
>>> testing, which uses Flowscript and Woody. Since continuations store 
>>> a reference to local variables, and the memory leak does not 
>>> manifest itself if I don't create any continuation, I'm starting to 
>>> suspect that my usage of form.showForm is causing the leak.
>>>
>> What objects are leaked? Did you use Optimizeit or JProfiler to 
>> determine this? What does your script look like?
>
>
> All sorts of objects. My application uses Hibernate to persist objects 
> and retrieve them for editing in a Woody form. Those objects in turn 
> contain references to other persistent and/or transient objects or 
> collections of the same. Some of those references are really to 
> dynamic proxies, since Hibernate uses dynamic proxies for lazy loading.
>
> I am using Optimizeit and it shows lots of objects that are never 
> garbage-collected. The chains of references leading to these objects 
> are rather complex and make debugging the real case very difficult. I 
> will try to prepare a simpler testcase.
>
>>> If this is indeed the case, how can I make sure that references to 
>>> local variables will be properly nulled so that they can be garbage 
>>> collected? Do they get forgotten when a continuation expires? 
>>
>> Yes.
>>
>>> And what if I invalidate the continuation
>>
>> Yes.
>
>
> Hmmm, from my tests, it looks like doing:
>
> var k = form.showForm(...);
> k.invalidate();
>
> does not make any difference. But I seem to recall that showForm() 
> creates not one but *two* continuations, so maybe I need to invalidate 
> also the one that is not returned by the function, but how?
>
> I also waited about 10 minutes to see if the expiration of 
> continuations  could allow the GC to reclaim some objects, but this 
> did not seem to be the case too.
>
>     Thank you,
>
>         Ugo
>
>


Mime
View raw message