[openstack-dev] [goals][python3] mixed versions?
doug at doughellmann.com
Thu Sep 13 13:10:48 UTC 2018
Excerpts from Thomas Goirand's message of 2018-09-13 12:23:32 +0200:
> On 09/13/2018 12:52 AM, Chris Friesen wrote:
> > On 9/12/2018 12:04 PM, Doug Hellmann wrote:
> >>> This came up in a Vancouver summit session (the python3 one I think).
> >>> General consensus there seemed to be that we should have grenade jobs
> >>> that run python2 on the old side and python3 on the new side and test
> >>> the update from one to another through a release that way.
> >>> Additionally there was thought that the nova partial job (and similar
> >>> grenade jobs) could hold the non upgraded node on python2 and that
> >>> would talk to a python3 control plane.
> >>> I haven't seen or heard of anyone working on this yet though.
> >>> Clark
> >> IIRC, we also talked about not supporting multiple versions of
> >> python on a given node, so all of the services on a node would need
> >> to be upgraded together.
> > As I understand it, the various services talk to each other using
> > over-the-wire protocols. Assuming this is correct, why would we need to
> > ensure they are using the same python version?
> > Chris
> There are indeed a few cases were things can break, especially with
> character encoding. If you want an example of what may go wrong, here's
> one with Cinder and Ceph:
> Without the encodeutils.safe_decode() call, Cinder over Ceph was just
> crashing for me in Debian (Debian is full Python 3 now...). In this
> example, we're just over the wire, and it was supposed to be the same.
> Yet, only an integration test could have detect it (and I discovered it
> running puppet-openstack on Debian).
Was that caused (or found) by first running cinder under python 2
and then upgrading to python 3 on the same host? That's the test
case Jim originally suggested and I'm trying to understand if we
actually need it.
More information about the OpenStack-dev