Browse code

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

Matthew Treinish authored on 2017/08/11 03:55:15
Showing 1 changed files
... ...
@@ -277,7 +277,6 @@ function write_uwsgi_config {
277 277
     else
278 278
         local apache_conf=""
279 279
         apache_conf=$(apache_site_config_for $name)
280
-        echo "SetEnv proxy-sendcl 1" | sudo tee $apache_conf
281 280
         iniset "$file" uwsgi socket "$socket"
282 281
         iniset "$file" uwsgi chmod-socket 666
283 282
         echo "ProxyPass \"${url}\" \"unix:${socket}|uwsgi://uwsgi-uds-${name}/\" retry=0 " | sudo tee -a $apache_conf
... ...
@@ -335,6 +334,7 @@ function write_local_uwsgi_http_config {
335 335
     local apache_conf=""
336 336
     apache_conf=$(apache_site_config_for $name)
337 337
     echo "KeepAlive Off" | sudo tee $apache_conf
338
+    echo "SetEnv proxy-sendchunked 1" | sudo tee -a $apache_conf
338 339
     echo "ProxyPass \"${url}\" \"http://127.0.0.1:$port\" retry=0 " | sudo tee -a $apache_conf
339 340
     enable_apache_site $name
340 341
     restart_apache_server