Good news: ZODB will work with Python 2.7 (was Re: Heads up: ZODB probably won't work with Python 2.7)
On Fri, Sep 17, 2010 at 6:15 PM, Jim Fulton <jim@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. :)
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
On 09/24/2010 05:16 PM, Jim Fulton wrote:
Thanks to Tim Peters for helping me figure out the fix.
Cheers for Tim! :) -- Christian Theune · ct@gocept.com gocept gmbh & co. kg · forsterstraße 29 · 06112 halle (saale) · germany http://gocept.com · tel +49 345 1229889 0 · fax +49 345 1229889 1 Zope and Plone consulting and development
participants (2)
-
Christian Theune -
Jim Fulton