[Twisted-web] Guard, LastPage Memory Leak?
Federico Tomassini
federicotom at yahoo.it
Wed Jul 29 19:34:26 EDT 2009
Jean-Paul Calderone wrote:
>>Ok, this minimal server application proofs that a memory
>>leak exists somewhere. This is already a good result.
>
> I messed around with this for a while. Unfortunately, I am not able
> to reproduce a memory leak using it. I found some things which I find
> suspicious in Nevow, but none of them explains a leak.
Are you saying that you are not sure about memory leaks
existence?
The previous example allocates memory such way:
def afterRender(self, *a):
self.foo= ['a' * (10**6) for i in xrange(100)]
When logout, memory remains allocated unless you
create a destroyer method that deletes the foo
attr before the exit, explicitley.
Memory leaks appears also when rend.Page.data_bar()
is used. Both cases seem to be related to WovenContext
and docFactory (a lot of WovenCtx and IMacroFactory
instances seems to stick in docFactory._cache).
In fact, this part of nevow is simply a Memory
Blackhole. Inside docFactory._cache one can find
various sticky objects.
So, why "you are not able to reproduce it"?
This is a *really heavy* problem. So, imho, nevow
should work on it with energies.
Maybe the better way is to redesign WovenCtx machinery,
as Jean-Paul suggested. But it's absolutely important
to make an intervention.
I can help. If we need to redesign WovenCtx and someone
is able to guide my work (requiring to me precise APIs
or Classes), you can rely on my contribution.
Br
--
efphe
Today is Setting Orange, the 64th day of Confusion in the YOLD 3175
More information about the Twisted-web
mailing list