Tim Peters wrote at 2005-12-29 11:28 -0500:
> ...
>Or there are no strong reference to `obj`, but `obj` is part of cyclic
>garbage so _continues to exist_ until a round of Python's cyclic garbage
>collection runs.

And this is *VERY* likely as any persistent object in the cache
has a (strong, I believe) reference to the connection which
in turn references any of these objects indirectly via the cache.

In my view, closed connections not put back into the pool
should be explicitely cleaned e.g. their cache cleared or at least

If for some reason, the garbage collector does not release the
cache/cache content cycles, then the number of connections
would grow unboundedly which is much worse than an unbound grow
of the "all" attribute.
Pitcher seem to observe such a situation (where for some unknown
reason, the garbage collector does not collect the connection.

For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to