image create fills up /tmp and fails under uwsgi

Bug #1709970 reported by Eric Fried
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
devstack
Fix Released
High
Matthew Treinish

Bug Description

Under uwsgi mode, specifying an image file that's bigger than my free space in /tmp, devstack fails on image create with a super generic 500. If I watch /tmp while this is happening, it fills up with a file like

-rw------- 1 www-data www-data 837664768 Aug 10 14:41 modproxy.tmp.tQL07E

right before the failure.

Apparently (per mtreinish) this has to do with mod_proxy not being able to understand chunked requests, so it tries to save off the content and pass it through with a standard content-length.

Or something.

And the solution (again per mtreinish) is going to be having devstack fiddle the apache configs to send glance stuff through a different path that doesn't have that limitation.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to devstack (master)

Fix proposed to branch: master
Review: https://review.openstack.org/492651

Changed in devstack:
assignee: nobody → Matthew Treinish (treinish)
status: New → In Progress
Changed in devstack:
importance: Undecided → High
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to devstack (master)

Reviewed: https://review.openstack.org/492651
Committed: https://git.openstack.org/cgit/openstack-dev/devstack/commit/?id=a3488d5f0067b570974c14572c58bbf8cedf7ed2
Submitter: Zuul
Branch: master

commit a3488d5f0067b570974c14572c58bbf8cedf7ed2
Author: Matthew Treinish <email address hidden>
Date: Thu Aug 10 14:55:15 2017 -0400

    Remove proxy-sendcl from mod_proxy_uwsgi apache path

    Calling setenv appears to be globally scoped which is breaking the
    glance path which relies on chunked uploads. The glance path is
    separated by using mod_proxy instead of mod_proxy_uwsgi because
    mod_proxy_uwsgi doesn't support chunked encoding.[1] The proxy-sendcl [2]
    was set on the mod_proxy_uwsgi path just in case someone tried to send a
    chunked request to the api server we would be able to handle it. It
    tells apache to locally cache the chunked request and send the
    content-length as a normal upload to the upstream server. However, if we
    can only set it globally across then small potential benefit is not worth
    having all glance uploads cached by apache. This commit just removes
    setting the flag. In the future if we can have devstack isolate this
    flag it might be worth adding back to the mod_proxy_uwsgi path, but for
    right now it's not worth the tradeoff.

    [1] https://github.com/unbit/uwsgi/issues/1540
    [2] https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#request-bodies

    Depends-On: Idf6b4b891ba31cccbeb53d373b40fce5380cea64
    Change-Id: Iab2e2848877fa1497008d18c05b0154892941589
    Closes-Bug: #1709970

Changed in devstack:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to devstack (stable/pike)

Fix proposed to branch: stable/pike
Review: https://review.openstack.org/542243

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on devstack (stable/pike)

Change abandoned by Eric Berglund (<email address hidden>) on branch: stable/pike
Review: https://review.openstack.org/542243
Reason: The glance side of this has been abandoned https://review.openstack.org/#/c/525994/

Backporting https://review.openstack.org/#/c/545483/ to pike seems to be the route going forward.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Change abandoned by Eric Berglund (<email address hidden>) on branch: stable/pike
Review: https://review.openstack.org/542243
Reason: I'm changing roles and won't be able to follow up on this moving forward. I'm not sure if we're still hoping to get this in, but if so someone else can repropose.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.