[Florent Guillaume]
> ...
> The self.all.remove(c) in _ConnectionPool attempts to destroy the
> connection.

Nope, it's simply getting rid of a weak reference that no longer serves a
purpose, to avoid unbounded growth of the .all set in case of ill-behaved
application code, and to speed Python's cyclic gc a little.  Removing the
Connection from .available removed _ConnectionPool's only strong reference
to the Connection.

> If something else has a reference to it once it's closed, then that's a
> bug, and it shouldn't.



> Even hundreds of ZODB connections is absurd.

I'd settle for calling it uncommon and unexpected.

> Again, with 4 threads you should never get more than 4 Filestorage
> connections plus 4 TemporaryStorage connections.

Bears repeating ;-)

For more information about ZODB, see the ZODB Wiki:

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

Reply via email to