On Aug 27, 2008, at 10:40 AM, Christian Theune wrote: > Hi, > > I located an issue with leaking file descriptors in the ZEO tests and > have a simple proposal how to fix it. (I can imagine a better way to > exist but can't see one right now.) > > Here's what happens: > > - The (single) thread in the client process uses a > ManagedClientConnection. > > - The __init__ of ManagedClientConnection's super class causes a > trigger > to be created which will then be replaced with a shared trigger by > ManagedClientConnection's __init__. > > - Unfortunately at this time the trigger that got temporarily created > won't be garbage collected (or at least the file descriptor won't > be), > as asyncore holds a shared, module-global map of file descriptor > numbers to file descriptor objects. > > I fixed it for me by explicitly closing the trigger in > ManagedClientConnection before replacing it with the shared one. > > After that, the number of file descriptors used by the test becomes > stable and my tests for the almost-merged iterator branch can run > successfully.
Good analysis! I fixed it by not creating the extra trigger in the first place. My fix is checked in. Jim -- Jim Fulton Zope Corporation _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev