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

Matthew Treinish mtreinish at kortar.org
Tue May 8 17:55:43 UTC 2018


On Tue, May 08, 2018 at 01:34:11PM -0400, Doug Hellmann wrote:
> 
> (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 wsgi limitation or the glance usage? I wrote up a doc about running under
apache when I added the uwsgi chunked transfer encoding support to glance about
running glance under apache here:

https://docs.openstack.org/glance/latest/admin/apache-httpd.html

Which includes how you have to configure things to get it working and a section
on why mod_wsgi doesn't work.

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

It really doesn't have anything to do with Python 3 though since the bug with
glance's taskflow usage is on both py2 and py3. In fact we're already running
glance under uwsgi in the gate with python 3 today for the dsvm py3 jobs. The
reason these bugs haven't come up there is because there is no test coverage
for any of these async APIs. But I can add it to the wiki later today.

> 
> > 
> > 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.
> 
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20180508/e3b76bc8/attachment.sig>


More information about the OpenStack-dev mailing list