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=111149&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