[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