[openstack-dev] [all][tc][ptls][glance] final stages of python 3 transition

Doug Hellmann doug at doughellmann.com
Tue May 8 17:34:11 UTC 2018


(added [glance] subject tag)

Excerpts from Matthew Treinish's message of 2018-05-08 12:22:56 -0400:
> On Tue, May 08, 2018 at 05:01:36PM +0100, Graham Hayes wrote:
> > On 08/05/18 16:53, Doug Hellmann wrote:
> > > Excerpts from Graham Hayes's message of 2018-05-08 16:28:46 +0100:
> > >> On 08/05/18 16:09, Zane Bitter wrote:
> > >>> On 30/04/18 17:16, Ben Nemec wrote:
> > >>>>> Excerpts from Doug Hellmann's message of 2018-04-25 16:54:46 -0400:
> > >>>>>> 1. Fix oslo.service functional tests -- the Oslo team needs help
> > >>>>>>     maintaining this library. Alternatively, we could move all
> > >>>>>>     services to use cotyledon (https://pypi.org/project/cotyledon/).
> > >>>
> > >>> I submitted a patch that fixes the py35 gate (which was broken due to
> > >>> changes between CPython 3.4 and 3.5), so once that merges we can flip
> > >>> the gate back to voting:
> > >>>
> > >>> https://review.openstack.org/566714
> > >>>
> > >>>> For everyone's awareness, we discussed this in the Oslo meeting today
> > >>>> and our first step is to see how many, if any, services are actually
> > >>>> relying on the oslo.service functionality that doesn't work in Python
> > >>>> 3 today.  From there we will come up with a plan for how to move forward.
> > >>>>
> > >>>> https://bugs.launchpad.net/manila/+bug/1482633 is the original bug.
> > >>>
> > >>> These tests are currently skipped in both oslo_service and nova.
> > >>> (Equivalent tests were removed from Neutron and Manila on the principle
> > >>> that they're now oslo_service's responsibility.)
> > >>>
> > >>> This appears to be a series of long-standing bugs in eventlet:
> > >>>
> > >>> Python 3.5 failure mode:
> > >>> https://github.com/eventlet/eventlet/issues/308
> > >>> https://github.com/eventlet/eventlet/issues/189
> > >>>
> > >>> Python 3.4 failure mode:
> > >>> https://github.com/eventlet/eventlet/issues/476
> > >>> https://github.com/eventlet/eventlet/issues/145
> > >>>
> > >>> There are also more problems coming down the pipeline in Python 3.6:
> > >>>
> > >>> https://github.com/eventlet/eventlet/issues/371
> > >>>
> > >>> That one is resolved in eventlet 0.21, but we have that blocked by
> > >>> upper-constraints:
> > >>> http://git.openstack.org/cgit/openstack/requirements/tree/upper-constraints.txt#n135
> > >>>
> > >>>
> > >>> Given that the code in question relates solely to standalone WSGI
> > >>> servers with SSL and everything should have already migrated to Apache,
> > >>> and that the upstream is clearly overworked and unlikely to merge fixes
> > >>> any time soon (plus we would have to deal with the fallout of moving the
> > >>> upper constraint), I agree that it would be preferable if we could just
> > >>> ditch this functionality.
> > >>
> > >> There are a few projects that have not migrated, and some that have
> > >> issues running in non standalone WSGI mode (due, ironically to eventlet)
> > >>
> > >> We should probably get people to run these projects behind an reverse
> > >> proxy, and terminate SSL there, but right now we don't have that
> > >> documented.
> > > 
> > > Do you know which projects?
> > 
> > I know of 2:
> > 
> > Designate - mainly due to the major lack of resources available during
> > the uwsgi goal period, and the level of work needed to unravel our
> > tooling to support it.
> > 
> > Glance - Has issues with image upload + uwsgi + eventlet [1]
> 
> This actually is a bit misleading. Glance works fine with image upload and uwsgi.
> That's the only configuration of glance in a wsgi app that works because
> of chunked transfer encoding not being in the WSGI protocol. [2] uwsgi provides
> an alternate interface to read chunked requests which enables this to work.
> If you look at the bugs linked off that release note about image upload
> you'll see they're all fixed.

Is this documented somewhere?

> 
> The issues glance has with running in a wsgi app are related to it's use of
> async tasks via taskflow. (which includes the tasks api and image import stuff)
> This shouldn't be hard to fix, and I've had patches up to address these for
> months:
> 
> https://review.openstack.org/#/c/531498/
> https://review.openstack.org/#/c/549743/
> 
> Part of the issue is that there is no api driven testing for these async api
> functions or any documented way to test them. Which is why I marked the 2nd
> one WIP, since I have no method to test it and after asking several times
> for a test case or some other method to validate these APIs without an answer.

It would be helpful if some of this detail made its way into the glance
section of https://wiki.openstack.org/wiki/Python3#Python_3_Status_of_OpenStack_projects

> 
> In fact people are running glance under uwsgi in production already because it 
> makes a lot of things easier and the current issues don't effect most users.

That's good to know!

> 
> -Matt Treinish
> 
> > 
> > I am sure there are probably others, but I know of these 2.
> > 
> > [1] https://docs.openstack.org/releasenotes/glance/unreleased.html#b1
> > 
> 
> [2] There are a few other ways, as some other wsgi servers have grafted on
> support for chunked transfer encoding. But, most wsgi servers have not
> implemented a method.



More information about the OpenStack-dev mailing list