[Zope-dev] disabling gc does not necessarily hide memory corruption

Anthony Baxter Anthony Baxter <anthony@interlink.com.au>
Tue, 18 Dec 2001 13:29:48 +1100


>>> Leonardo Rochael Almeida wrote
> >From my mile-high look at the issues, it seems like the cycle-gc asks
> for an object where to look for for it's references (at least thats what
> the tp_traverse function looks like it does). So, if your tp_traverse
> sends the gc somewhere it shouldn't go (or if tp_traverse itself is not
> some C function pointer), you get a crash.

When I look at it, I see the GC hitting an object with a null tp_type, and
a refcount of 1. This is monster bogus - but normally (non-GC) it would
just be ignored and sit there as a small memory leak. 

> import gc
> gc.disable()
> also stops the SIG11 without the need of a python recompile, but I'll
> only be sure when the server gets office-hours-traffic tomorrow morning.

I find that if I do this I get a vast vast number of RestrictedPython
cycles leaking (according to the manage_debug screen) and memory consumption
goes through the roof.