On Fri, Sep 17, 2010 at 6:15 PM, Jim Fulton <j...@zope.com> wrote:
> I suspect that the shenanigans played by the ZODB persistent cache
> implementation is running afoul of some changes in the garbage
> collection implementation in Python 2.7.

My suspicion was correct. :)

> See https://bugs.launchpad.net/zodb/+bug/641481

Fixed.

>
> The person reporting this was running a Python compiled in debug mode.
> This will sometimes detect subtle memory management bugs not detected
> with a normal build.  ZODB's tests pass with a normal Python 2.7 build
> and with a debug Python 2.6 build.
>
> I've tracked one source of crash in a debug build to the cache's
> attempts to manage weak references to ghosts. Even hacking around
> this, there are other crashes that, I assume, are related. :(
>
> I'll dig further, but I strongly suspect that moving to Python 2.7
> will require a cache reimplementation that uses real Python weak
> references.  This won't happen in ZODB 3.10.

Fortunately, the fix didn't require it.

> If there is anyone on this list who has knowledge of Python GC
> internals, I'd love to get some help. :)

Thanks to Tim Peters for helping me figure out the fix.

Jim

-- 
Jim Fulton
_______________________________________________
Zope-Dev maillist  -  Zope-Dev@zope.org
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )

Reply via email to