)]}'
{"releasenotes/notes/wsgi-containerization-369880238a5e793d.yaml":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"c8cf4dc8bb03aa961273a08eba0d15d570b51fbd","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    These issues are discussed in the Glance documentation section "},{"line_number":25,"context_line":"    `Running Glance in HTTPD"},{"line_number":26,"context_line":"    \u003chttps://docs.openstack.org/glance/latest/admin/apache-httpd.html\u003e`_."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    As far as the Glance team can determine, the difficulties running Glance"},{"line_number":29,"context_line":"    as a WSGI application are caused by issues external to Glance.  Thus"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f1a1f67_999c725e","line":26,"updated":"2017-07-21 03:43:44.000000000","message":"I think we should either be more or less specific here. I\u0027ve seen a lot of details get glossed over the past few weeks, which has caused a lot of confusion. There are a bunch of subtleties with this and everything is named similar things which makes it more confusing. So we either go into a lot of detail here or just say there be dragons and your mileage may vary and point people to some docs.\n\nThe fundamental issue is very specifically just with chunked transfer-encoding. That is not part of the wsgi spec and a lot of the trouble stems from that. uwsgi, which is what we use in the gate, has support for running wsgi apps and accepted chunked encoding, but there is an issue with the apache mod_proxy_uwsgi that prevents that from working, that I filed an upstream bug for:\n\nhttps://github.com/unbit/uwsgi/issues/1540\n\nBut we were able to workaround that by running uwsgi in http mode and running regular mod_proxy to proxy the http traffic to uwsgi. (instead of using the \"uwsgi\" protocol, not to be confused with wsgi, which is what mod_proxy_uwsgi does) This is also what I documented in this doc. (although I need to push a few updates to the sample configs) This should be a completely sustainable deployment model, the tradeoff for using mod_proxy vs mod_proxy_uwsgi is slightly higher overhead and lower throughput on the uwsgi side because it has to also process the http.\n\nThe issue some people are hitting right now, https://bugs.launchpad.net/glance/+bug/1703856 ,  that abhishek is debugging is a completely independent issue from that and likely related to uwsgi or apache being misconfigured in devstack. (but it\u0027s not clear) We\u0027re seeing apache return 502 on larger image requests (which I assume are using chunked encoding, but it\u0027s hard to tell from the bug report because everything is jumbled together) The working theory is that uwsgi is closing the socket before apache is ready causing apache to return 502 for a bad proxy. But there hasn\u0027t been any confirmation on what actually is happening yet, just that setting the socket timeout sky high seems to work around the issue. But its too soon to say where the issue lies or why a socket timeout in minutes fixes it.\n\nIt should also be noted that the socket timeout we\u0027re playing with is more than just a straight socket timeout in the uwsgi config. It\u0027s also used as a default setting for some other timeout values, like chunked-input-timeout, which is the timeout value for reading a chunk. (which by default is just 1MB) So a lot of details are getting muddled over here.\n\nThe other thing is that we\u0027re only talking about apache httpd here. (because that\u0027s what devstack configures) The story is likely very different on nginx.","commit_id":"170d34aa609ed376c046640c3113b554fe3170b1"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"52dfb62e7b27bc0569ed502473895dea529484c7","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    Glance, which enable transfer of copious amounts of image data, makes it"},{"line_number":19,"context_line":"    difficult for this approach to work without careful configuration.  For"},{"line_number":20,"context_line":"    example, Glance may require higher than normal socket timeout settings."},{"line_number":21,"context_line":"    Further, there are known issues with some popular web servers that make"},{"line_number":22,"context_line":"    them unsuitable for hosting Glance."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    These issues are discussed in the Glance documentation section"},{"line_number":25,"context_line":"    `Running Glance in HTTPD"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"1f1a1f67_267d2de7","line":22,"range":{"start_line":21,"start_character":4,"end_line":22,"end_character":39},"updated":"2017-07-21 13:38:27.000000000","message":"I think this sentence is unnecessary and based on Matt\u0027s comment not really accurate either.","commit_id":"d828a94a0b2a6ce566d4bf00cf39cd86a1f9523f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"784cb7b0197ad1ab1bf4477fe3f44a4d3f2c2f7d","unresolved":false,"context_lines":[{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    There are some limitations with this method of deploying Glance and we"},{"line_number":11,"context_line":"    do not recommend its use in production environments at this time.  See"},{"line_number":12,"context_line":"    the `Known Issues`_ section of this document for more information."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"issues:"},{"line_number":15,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ff346bd7_d3e93bb7","line":12,"updated":"2017-07-26 19:29:22.000000000","message":"This is probably good, but I think the way the publishing goes, as stable releases are made, if there are any Known Issues sections in a stable release release not then the newer stable release will end up with the named anchor and any older ones will get renamed id1, id2, etc.\n\nProbably not likely, and easy enough to fix up later or just scan through the sections to find the appropriate place manually.","commit_id":"feb4539e0fbc7fefb1af709ab2f82ac242f586c7"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"6866ac56d5681e13995170f1fc23bf972b43ae5c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"issues:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    Although support has been added for Glance to be run as a WSGI application"},{"line_number":17,"context_line":"    hosted by a web server, the atypical nature of the Images APIs provided by"},{"line_number":18,"context_line":"    Glance, which enable transfer of copious amounts of image data, makes it"},{"line_number":19,"context_line":"    difficult for this approach to work without careful configuration.  Glance"},{"line_number":20,"context_line":"    relies on the use of chunked transfer encoding for image uploads, and"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ff346bd7_ec9a8e6c","line":17,"range":{"start_line":17,"start_character":32,"end_line":17,"end_character":33},"updated":"2017-07-24 06:07:29.000000000","message":"typo","commit_id":"feb4539e0fbc7fefb1af709ab2f82ac242f586c7"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c2ded0ee8060128ed57440745aabb7e7437cba0e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"issues:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    Although support has been added for Glance to be run as a WSGI application"},{"line_number":17,"context_line":"    hosted by a web server, the atypical nature of the Images APIs provided by"},{"line_number":18,"context_line":"    Glance, which enable transfer of copious amounts of image data, makes it"},{"line_number":19,"context_line":"    difficult for this approach to work without careful configuration.  Glance"},{"line_number":20,"context_line":"    relies on the use of chunked transfer encoding for image uploads, and"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ff346bd7_b450250c","line":17,"range":{"start_line":17,"start_character":32,"end_line":17,"end_character":33},"in_reply_to":"ff346bd7_ec9a8e6c","updated":"2017-07-25 07:04:34.000000000","message":"Please ignore this comment","commit_id":"feb4539e0fbc7fefb1af709ab2f82ac242f586c7"}]}
