)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":29422,"name":"Olivier Chaze","display_name":"Olivier Chaze","email":"olivier.chaze@infomaniak.com","username":"o.chaze"},"change_message_id":"1fb0df2b50d81fdb3de945c8570671d8ddad22ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"87b3d723_25de1f15","updated":"2023-01-18 09:10:32.000000000","message":"recheck","commit_id":"3126e1acd86f0456175108d262ab508cd473c0de"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"594e3b4f6750bee5551f7e918a5b9710a8f4b72b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"67134704_f25d6f9b","updated":"2023-01-20 06:07:55.000000000","message":"I think this may have been addressed via an eventlet fix... see https://github.com/eventlet/eventlet/commit/579c498a\n\nThat said, we should probably bump up our minimum eventlet version...","commit_id":"8909d6dc6c8296207932ca528ca7e4db9bfe7a40"},{"author":{"_account_id":29422,"name":"Olivier Chaze","display_name":"Olivier Chaze","email":"olivier.chaze@infomaniak.com","username":"o.chaze"},"change_message_id":"dfaf851a2b0c1f959839fd8af4232afdd26c26d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d8875a1a_25c6f218","in_reply_to":"67134704_f25d6f9b","updated":"2023-01-24 13:35:15.000000000","message":"Hi Tim\n\nWe tested the 0.33 verison and indeed we no longer see the issue !\nWe were using 0.30","commit_id":"8909d6dc6c8296207932ca528ca7e4db9bfe7a40"}],"swift/common/middleware/account_quotas.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"594e3b4f6750bee5551f7e918a5b9710a8f4b72b","unresolved":true,"context_lines":[{"line_number":122,"context_line":"        if quota \u003c new_size:"},{"line_number":123,"context_line":"            resp \u003d HTTPRequestEntityTooLarge(body\u003d\u0027Upload exceeds quota.\u0027)"},{"line_number":124,"context_line":"            # emptying buffer"},{"line_number":125,"context_line":"            request.environ[\u0027wsgi.input\u0027].read()"},{"line_number":126,"context_line":"            if \u0027swift.authorize\u0027 in request.environ:"},{"line_number":127,"context_line":"                orig_authorize \u003d request.environ[\u0027swift.authorize\u0027]"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9ecfdcc0_9fe4ea05","line":125,"updated":"2023-01-20 06:07:55.000000000","message":"I\u0027m concerned about doing this as a simple read() -- the server will buffer the whole request body before discarding it. If a client started a thousand 5GB uploads *expecting* them to all get too-large responses, it would almost certainly cause out-of-memory kills and be a DoS vector.\n\nIf we pursue this in Swift, we\u0027ll want to do something more like\n\n while request.environ[\u0027wsgi.input\u0027].read(1 \u003c\u003c 16):\n      pass  # drop it on the floor\n\nIf you\u0027re already carrying the patch, I expect you\u0027ll want something similar. Might also need to worry about container quotas, or clients trying to upload \u003e5GB.","commit_id":"8909d6dc6c8296207932ca528ca7e4db9bfe7a40"}]}
