Re: [ZODB-Dev] RFC: compatibility of ZEO clients and servers running different Python versions
On Tue, Apr 20, 2010 at 12:17 PM, Christian Theune wrote: ... > Thanks for the effort, sounds like a rabbit hole. :) > > I basically aim running ZEO servers and clients at the same Python > version. For upgrading purposes it would be nice to have your conclusion > available to developers/admins so they can figure out (or we can tell > them) a reasonable upgrade path. I added some text to the README.txt on the trunk and 3.9 branch, so this will be documented in upcoming 3.9 and 3.10 releases. Jim -- Jim Fulton ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] RFC: compatibility of ZEO clients and servers running different Python versions
Jim Fulton wrote: > Because of the complexity of the solution, I'm, sadly, inclined to > leave things as they are: > > - Can't use Python 2.4 clients with Python 2.5 or 2.6 servers > - Can use Python 2.6 clients with 2.4 servers. > - Can't use Python 2.5 or 2.6 servers with clients running ZODB 3.7 or > earlier. > > I wonder what other people think. Personally, I'm certainly okay with this. It'd be great to have it advertised somewhere prominent though... Chris -- Simplistix - Content Management, Batch Processing & Python Consulting - http://www.simplistix.co.uk ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] RFC: compatibility of ZEO clients and servers running different Python versions
On 04/20/2010 05:47 PM, Jim Fulton wrote: > Starting with Python 2.5, Python exception classes became new-style > types, which led to changes in the way Exception pickles were > constructed. This primarily affects the ZEO protocol. Changes were > made in ZODB 3.8 and later to accomidate this change. > > I realized recently that, while the changes made to ZODB cause ZEO to > work with newer Python versions when clients and servers run the same > version, there's still a problem when clients and servers run > different Python versions. A Python 2.4 client doesn't work properly > with Python 2.5 or 2.6 servers. Also, if a server is running on Python > 2.5 or 2.6, it won't work with clients older that ZODB 3.8, regardless > of which Python version they use. > > Fortunately, clients running Python 2.5 or 2.6 will work with servers > running 2.4, so there is a way to upgrade clients and servers without > taking them all down at once. > > I've been pretty proud of the fact that modern ZEO servers work with > ZEO clients as old as ZODB 3.2. (We've had clients that old in > production here at ZC until very recently.) I'm a bit disappointed > that will lose compatibility with older clients. > > Yesterday, I worked out an alternate exception pickling strategy that > would support ZEO clients as old as 3.3: > >http://svn.zope.org/?rev=49&view=rev > > It does this at the cost of making pickling a little more brittle > because different exception classes would have slightly different > __reduce__ methods. > > Because of the complexity of the solution, I'm, sadly, inclined to > leave things as they are: > > - Can't use Python 2.4 clients with Python 2.5 or 2.6 servers > - Can use Python 2.6 clients with 2.4 servers. > - Can't use Python 2.5 or 2.6 servers with clients running ZODB 3.7 or >earlier. > > I wonder what other people think. Thanks for the effort, sounds like a rabbit hole. :) I basically aim running ZEO servers and clients at the same Python version. For upgrading purposes it would be nice to have your conclusion available to developers/admins so they can figure out (or we can tell them) a reasonable upgrade path. Christian -- Christian Theune · c...@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 ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev
[ZODB-Dev] RFC: compatibility of ZEO clients and servers running different Python versions
Starting with Python 2.5, Python exception classes became new-style types, which led to changes in the way Exception pickles were constructed. This primarily affects the ZEO protocol. Changes were made in ZODB 3.8 and later to accomidate this change. I realized recently that, while the changes made to ZODB cause ZEO to work with newer Python versions when clients and servers run the same version, there's still a problem when clients and servers run different Python versions. A Python 2.4 client doesn't work properly with Python 2.5 or 2.6 servers. Also, if a server is running on Python 2.5 or 2.6, it won't work with clients older that ZODB 3.8, regardless of which Python version they use. Fortunately, clients running Python 2.5 or 2.6 will work with servers running 2.4, so there is a way to upgrade clients and servers without taking them all down at once. I've been pretty proud of the fact that modern ZEO servers work with ZEO clients as old as ZODB 3.2. (We've had clients that old in production here at ZC until very recently.) I'm a bit disappointed that will lose compatibility with older clients. Yesterday, I worked out an alternate exception pickling strategy that would support ZEO clients as old as 3.3: http://svn.zope.org/?rev=49&view=rev It does this at the cost of making pickling a little more brittle because different exception classes would have slightly different __reduce__ methods. Because of the complexity of the solution, I'm, sadly, inclined to leave things as they are: - Can't use Python 2.4 clients with Python 2.5 or 2.6 servers - Can use Python 2.6 clients with 2.4 servers. - Can't use Python 2.5 or 2.6 servers with clients running ZODB 3.7 or earlier. I wonder what other people think. Jim -- Jim Fulton ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev