)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6cf8a27af33a0045d6d752efc46d1e2ea9f2fbb9","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add uwsgi binaries and configuration files"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After many months of using Swift over uwsgi, it is porbably a good idea"},{"line_number":10,"context_line":"to simply share these, and make it a Swift standard. Indeed, some of the"},{"line_number":11,"context_line":"configuration isn\u0027t exactly easy to guess, and require a lot of trials"},{"line_number":12,"context_line":"and errors to get it right. For example, the directive:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"365b9710_742721c8","line":9,"updated":"2021-12-10 18:26:54.000000000","message":"Out of curiosity, what kind of configs have you been running? Any EC storage policies? Encryption on or off? Having both can certainly bloat the request headers used when talking to backends.","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"a22776d0edb4cefe571783cd79cd2d3aba21408e","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add uwsgi binaries and configuration files"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"After many months of using Swift over uwsgi, it is porbably a good idea"},{"line_number":10,"context_line":"to simply share these, and make it a Swift standard. Indeed, some of the"},{"line_number":11,"context_line":"configuration isn\u0027t exactly easy to guess, and require a lot of trials"},{"line_number":12,"context_line":"and errors to get it right. For example, the directive:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"43268c91_0340d793","line":9,"in_reply_to":"365b9710_742721c8","updated":"2022-01-26 16:50:53.000000000","message":"All of the above: encryption on, some EC policies sometimes.","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6cf8a27af33a0045d6d752efc46d1e2ea9f2fbb9","unresolved":true,"context_lines":[{"line_number":19,"context_line":"CI with it in a near future?"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Also note that there\u0027s currently no way to get the swift-object daemon"},{"line_number":22,"context_line":"to run under uwsgi: it\u0027s currently broken and would need attention."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I9c5a46a68d544aa4bdc15bb7b4d61046eb8c0e7e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fbc4d36_34dba91f","line":22,"updated":"2021-12-10 18:26:54.000000000","message":"FWIW I\u0027m guessing this is because of https://bugs.launchpad.net/swift/+bug/1496636 -- our proxy -\u003e object communication is unfortunately rather tied into eventlet\u0027s wsgi server at the moment.","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"a22776d0edb4cefe571783cd79cd2d3aba21408e","unresolved":true,"context_lines":[{"line_number":19,"context_line":"CI with it in a near future?"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Also note that there\u0027s currently no way to get the swift-object daemon"},{"line_number":22,"context_line":"to run under uwsgi: it\u0027s currently broken and would need attention."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: I9c5a46a68d544aa4bdc15bb7b4d61046eb8c0e7e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"2e98c83a_0ea5c384","line":22,"in_reply_to":"3fbc4d36_34dba91f","updated":"2022-01-26 16:50:53.000000000","message":"I\u0027d love to have this fixed if possible. Though I\u0027m unsure how...","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6cf8a27af33a0045d6d752efc46d1e2ea9f2fbb9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"34c2a322_71fa8519","updated":"2021-12-10 18:26:54.000000000","message":"Thanks for this! Do you have a quick how-to so I could try it out locally?","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e8903859d90e3854acff9bf7900fb38c25601852","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fc0d3a0e_6ff448a0","updated":"2022-02-01 22:58:11.000000000","message":"I\u0027m not entirely sure how to evaluate this change.  It\u0027s not such an egrigious burden to ask a small group of maintainers to ingore a few extra files in bin and etc; but I don\u0027t see how we could commit to \"maintaining\" them in any real sense.\n\nAs it sits, to me, this doesn\u0027t look like a complete change; I imagine the whole thing would make more sense adding the example uwsgi.ini files under the doc tree, like we do for saio example configs (another opinionated deployment config) along with some updates in doc/source/apache_deployment_guide.rst\n","commit_id":"124099d4ee8f8c6126325f49dab5759efbc842f4"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"e0fe5b2eaaefe48b3a7a84ef9d76b315891e00db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"bdd4e9c8_7db1eb8b","in_reply_to":"fc0d3a0e_6ff448a0","updated":"2022-02-08 09:33:06.000000000","message":"The ultimate goal here isn\u0027t just to document how things should be done in production, but to make swift switch to uwsgi for its testing, so it gets closer to a real production environment. This patch is just the first step in this direction.\n\nNote that currently, the object server cannot be set to use uwsgi, because it doesn\u0027t really comply to the RFC, and therefore only Eventlet is working correctly. This IMO should somehow be addressed at some point, as running a Python server using Eventlet goes half the speed as with uwsgi. Indeed, in production, we saw half the load on (very) busy servers.","commit_id":"124099d4ee8f8c6126325f49dab5759efbc842f4"}],"bin/swift-account-server-uwsgi":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6cf8a27af33a0045d6d752efc46d1e2ea9f2fbb9","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"application, conf, logger, log_name \u003d \\"},{"line_number":7,"context_line":"    init_request_processor(\u0027/etc/swift/account-server.conf\u0027,"},{"line_number":8,"context_line":"                           \u0027account-server\u0027)"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"146775df_16e255b3","line":8,"updated":"2021-12-10 18:26:54.000000000","message":"This looks a lot like https://opendev.org/openstack/swift/src/branch/master/examples/wsgi/account-server.wsgi.template -- is there much value in having both?","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"a22776d0edb4cefe571783cd79cd2d3aba21408e","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"application, conf, logger, log_name \u003d \\"},{"line_number":7,"context_line":"    init_request_processor(\u0027/etc/swift/account-server.conf\u0027,"},{"line_number":8,"context_line":"                           \u0027account-server\u0027)"}],"source_content_type":"application/octet-stream","patch_set":2,"id":"7360f33c_853a2fa6","line":8,"in_reply_to":"146775df_16e255b3","updated":"2022-01-26 16:50:53.000000000","message":"I\u0027d like this example to go away, in the favor of what I wrote.","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"}],"bin/swift-container-server-uwsgi":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e8903859d90e3854acff9bf7900fb38c25601852","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"application, conf, logger, log_name \u003d \\"},{"line_number":7,"context_line":"    init_request_processor(\u0027/etc/swift/container-server.conf\u0027,"},{"line_number":8,"context_line":"                           \u0027container-server\u0027)"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"08dbe555_ade3c119","line":8,"updated":"2022-02-01 22:58:11.000000000","message":"for testing on a saio it\u0027d be useful if the config path wasn\u0027t hard coded (we\u0027d want to have separate /etc/swift/container-server/N.conf paths)\n\nfor use in production it\u0027d be useful if the config path wasn\u0027t hard coded (we\u0027d want to support config *directories* like /etc/swift/container-server.conf.d)","commit_id":"124099d4ee8f8c6126325f49dab5759efbc842f4"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"e0fe5b2eaaefe48b3a7a84ef9d76b315891e00db","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"application, conf, logger, log_name \u003d \\"},{"line_number":7,"context_line":"    init_request_processor(\u0027/etc/swift/container-server.conf\u0027,"},{"line_number":8,"context_line":"                           \u0027container-server\u0027)"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"284905b0_7b2935a3","line":8,"in_reply_to":"08dbe555_ade3c119","updated":"2022-02-08 09:33:06.000000000","message":"How do you propose to address this then? Should the python file lookup the .d folder first? How will it know the one it needs to load?","commit_id":"124099d4ee8f8c6126325f49dab5759efbc842f4"}],"bin/swift-proxy-server-uwsgi":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e8903859d90e3854acff9bf7900fb38c25601852","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"application, conf, logger, log_name \u003d \\"},{"line_number":7,"context_line":"    init_request_processor(\u0027/etc/swift/proxy-server.conf\u0027,"},{"line_number":8,"context_line":"                           \u0027proxy-server\u0027)"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"994c1071_93ec3855","line":8,"updated":"2022-02-01 22:58:11.000000000","message":"i\u0027ve seen these kind of things before; something about creating a thing named \"application\" is all the uwsgi engine needs","commit_id":"124099d4ee8f8c6126325f49dab5759efbc842f4"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"e0fe5b2eaaefe48b3a7a84ef9d76b315891e00db","unresolved":true,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"application, conf, logger, log_name \u003d \\"},{"line_number":7,"context_line":"    init_request_processor(\u0027/etc/swift/proxy-server.conf\u0027,"},{"line_number":8,"context_line":"                           \u0027proxy-server\u0027)"}],"source_content_type":"application/octet-stream","patch_set":4,"id":"7f936b74_7206ee53","line":8,"in_reply_to":"994c1071_93ec3855","updated":"2022-02-08 09:33:06.000000000","message":"Excuse me, but I\u0027m not following. Is there anything actionable with your remark? What does this imply?","commit_id":"124099d4ee8f8c6126325f49dab5759efbc842f4"}],"etc/swift-account-server-uwsgi.ini":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6cf8a27af33a0045d6d752efc46d1e2ea9f2fbb9","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"# This avoids error 104: \"Connection reset by peer\""},{"line_number":10,"context_line":"# This looks like breaking swift:"},{"line_number":11,"context_line":"#rem-header \u003d Content-Length"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"# This is running standalone"},{"line_number":14,"context_line":"master \u003d true"}],"source_content_type":"text/x-properties","patch_set":2,"id":"2c8de664_0490e215","line":11,"updated":"2021-12-10 18:26:54.000000000","message":"Have any more context on the \"Connection reset by peer\" issue?","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"a22776d0edb4cefe571783cd79cd2d3aba21408e","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"# This avoids error 104: \"Connection reset by peer\""},{"line_number":10,"context_line":"# This looks like breaking swift:"},{"line_number":11,"context_line":"#rem-header \u003d Content-Length"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"# This is running standalone"},{"line_number":14,"context_line":"master \u003d true"}],"source_content_type":"text/x-properties","patch_set":2,"id":"a32a6ce2_0f6d3529","line":11,"in_reply_to":"2c8de664_0490e215","updated":"2022-01-26 16:50:53.000000000","message":"This happened mostly with Glance, but I haven\u0027t seen this happening in Swift. We finally figured out it\u0027s best without it, which is why there\u0027s the \"This looks like breaking swift:\" comment.","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6cf8a27af33a0045d6d752efc46d1e2ea9f2fbb9","unresolved":true,"context_lines":[{"line_number":38,"context_line":"##################################"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"# We ran benches to validate these values, and they seem ok:"},{"line_number":41,"context_line":"threads \u003d 1"},{"line_number":42,"context_line":"listen \u003d 100"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"# These are used in the gate."}],"source_content_type":"text/x-properties","patch_set":2,"id":"b7cf8655_99b218d0","line":41,"updated":"2021-12-10 18:26:54.000000000","message":"Is there much value in having\n\n enable-thread \u003d true\n\nwhen we seem to be committing to just using a single thread?","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"a22776d0edb4cefe571783cd79cd2d3aba21408e","unresolved":false,"context_lines":[{"line_number":38,"context_line":"##################################"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"# We ran benches to validate these values, and they seem ok:"},{"line_number":41,"context_line":"threads \u003d 1"},{"line_number":42,"context_line":"listen \u003d 100"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"# These are used in the gate."}],"source_content_type":"text/x-properties","patch_set":2,"id":"3657e163_791be003","line":41,"in_reply_to":"b7cf8655_99b218d0","updated":"2022-01-26 16:50:53.000000000","message":"I am hoping that in the future Swift moves to be able to use threads, which would add a lot of performance.","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6cf8a27af33a0045d6d752efc46d1e2ea9f2fbb9","unresolved":true,"context_lines":[{"line_number":50,"context_line":"http-chunked-input \u003d true"},{"line_number":51,"context_line":"http-raw-body \u003d true"},{"line_number":52,"context_line":"chmod-socket \u003d 666"},{"line_number":53,"context_line":"lazy-apps \u003d true"},{"line_number":54,"context_line":"add-header \u003d Connection: close"},{"line_number":55,"context_line":"enable-threads \u003d true"},{"line_number":56,"context_line":"exit-on-reload \u003d true"}],"source_content_type":"text/x-properties","patch_set":2,"id":"b28a73b4_cfd7e8b9","line":53,"updated":"2021-12-10 18:26:54.000000000","message":"Don\u0027t we already have this set above? Ditto enable-threads and die-on-term below.","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"a22776d0edb4cefe571783cd79cd2d3aba21408e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"http-chunked-input \u003d true"},{"line_number":51,"context_line":"http-raw-body \u003d true"},{"line_number":52,"context_line":"chmod-socket \u003d 666"},{"line_number":53,"context_line":"lazy-apps \u003d true"},{"line_number":54,"context_line":"add-header \u003d Connection: close"},{"line_number":55,"context_line":"enable-threads \u003d true"},{"line_number":56,"context_line":"exit-on-reload \u003d true"}],"source_content_type":"text/x-properties","patch_set":2,"id":"979ce09f_ea83a911","line":53,"in_reply_to":"b28a73b4_cfd7e8b9","updated":"2022-01-26 16:50:53.000000000","message":"Done","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"}],"etc/swift-proxy-server-uwsgi.ini":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6cf8a27af33a0045d6d752efc46d1e2ea9f2fbb9","unresolved":true,"context_lines":[{"line_number":50,"context_line":"http-chunked-input \u003d true"},{"line_number":51,"context_line":"http-raw-body \u003d true"},{"line_number":52,"context_line":"# If not adding this directive, Glance will start failing..."},{"line_number":53,"context_line":"add-header \u003d Connection: close"},{"line_number":54,"context_line":"# Needed for tempest validations of object storage URLs."},{"line_number":55,"context_line":"# Without it, there\u0027s no date field in the responses."},{"line_number":56,"context_line":"route \u003d .* addheader:Date: ${httptime[]}"}],"source_content_type":"text/x-properties","patch_set":2,"id":"4e7ce92b_c34c14cd","line":53,"updated":"2021-12-10 18:26:54.000000000","message":"I\u0027m a little worried about this -- are we sure we don\u0027t want to allow request pipelining? I could see it for backend servers since we don\u0027t do any connection pooling anyway, but there\u0027s some definite value in allowing it for proxies.","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"a22776d0edb4cefe571783cd79cd2d3aba21408e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"http-chunked-input \u003d true"},{"line_number":51,"context_line":"http-raw-body \u003d true"},{"line_number":52,"context_line":"# If not adding this directive, Glance will start failing..."},{"line_number":53,"context_line":"add-header \u003d Connection: close"},{"line_number":54,"context_line":"# Needed for tempest validations of object storage URLs."},{"line_number":55,"context_line":"# Without it, there\u0027s no date field in the responses."},{"line_number":56,"context_line":"route \u003d .* addheader:Date: ${httptime[]}"}],"source_content_type":"text/x-properties","patch_set":2,"id":"9657e636_36fdd9b7","line":53,"in_reply_to":"4e7ce92b_c34c14cd","updated":"2022-01-26 16:50:53.000000000","message":"Last patch removes it.","commit_id":"d546159f9d5f0cb4733df9c068e2611879eb519e"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e8903859d90e3854acff9bf7900fb38c25601852","unresolved":true,"context_lines":[{"line_number":41,"context_line":"##################################"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# We ran benches to validate these values, and they seem ok."},{"line_number":44,"context_line":"# Note that currently, Swift only supports a single thread."},{"line_number":45,"context_line":"threads \u003d 1"},{"line_number":46,"context_line":"listen \u003d 100"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-properties","patch_set":4,"id":"0f299392_db1c4a7a","line":44,"updated":"2022-02-01 22:58:11.000000000","message":"I\u0027m not exactly sure what to make of this limitation.  Is uwsgi/apache trying to share the application object between threads and that doesn\u0027t work?  i.e. the application object is not thread safe?","commit_id":"124099d4ee8f8c6126325f49dab5759efbc842f4"},{"author":{"_account_id":6476,"name":"Thomas Goirand","email":"thomas@goirand.fr","username":"thomas-goirand"},"change_message_id":"e0fe5b2eaaefe48b3a7a84ef9d76b315891e00db","unresolved":false,"context_lines":[{"line_number":41,"context_line":"##################################"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# We ran benches to validate these values, and they seem ok."},{"line_number":44,"context_line":"# Note that currently, Swift only supports a single thread."},{"line_number":45,"context_line":"threads \u003d 1"},{"line_number":46,"context_line":"listen \u003d 100"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-properties","patch_set":4,"id":"6f2eb10b_39e492ab","line":44,"in_reply_to":"0f299392_db1c4a7a","updated":"2022-02-08 09:33:06.000000000","message":"Unfortunately, you are right: in production, we\u0027ve seen in the logs that the proxy was not able to switch thread, and crashed.","commit_id":"124099d4ee8f8c6126325f49dab5759efbc842f4"}]}
