[openstack-dev] [goals][python3] mixed versions?

Thomas Goirand zigo at debian.org
Thu Sep 13 10:23:32 UTC 2018

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).


Thomas Goirand (zigo)

More information about the OpenStack-dev mailing list