)]}'
{"swift/common/middleware/catch_errors.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d35f6c2b67f70a711e17535c7cdd3e413d7d5421","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        if bytes_left and not explicit_close:"},{"line_number":55,"context_line":"            raise BadResponseLength(\u0027Expected another %d bytes\u0027 % ("},{"line_number":56,"context_line":"                bytes_left,))"},{"line_number":57,"context_line":"        close_if_possible(inner_iter)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class CatchErrorsContext(WSGIContext):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_5e94f2e8","line":57,"updated":"2020-11-19 17:18:36.000000000","message":"I think we want this ahead of the raise.","commit_id":"e9b8b674d335575f37ad28f3bc4446ad1afc6911"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"cb5dfadd916b5938f270629b326805e772935c44","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        if bytes_left and not explicit_close:"},{"line_number":55,"context_line":"            raise BadResponseLength(\u0027Expected another %d bytes\u0027 % ("},{"line_number":56,"context_line":"                bytes_left,))"},{"line_number":57,"context_line":"        close_if_possible(inner_iter)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"class CatchErrorsContext(WSGIContext):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fffc6b78_03ae8ee6","line":57,"in_reply_to":"fffc6b78_5e94f2e8","updated":"2020-11-19 18:57:28.000000000","message":"Yes, probably - but also there\u0027s probably some other \"finally: close\" block that\u0027s just trying to do cleanup and will trigger our \"explicit_close\" when we\u0027d probably just rather have the BadResponseLength","commit_id":"e9b8b674d335575f37ad28f3bc4446ad1afc6911"}],"test/unit/common/middleware/test_catch_errors.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"66fd2fb666c5bfa26aa1721bf3f9ee66467250f1","unresolved":false,"context_lines":[{"line_number":155,"context_line":"        app \u003d catch_errors.CatchErrorMiddleware(cannot_count_app, {})"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # maybe it\u0027s just me, but isn\u0027t it weird that our catch_errors"},{"line_number":158,"context_line":"        # middleware is going out of it\u0027s way to *create* an error?"},{"line_number":159,"context_line":"        with self.assertRaises(catch_errors.BadResponseLength):"},{"line_number":160,"context_line":"            list(app({\u0027REQUEST_METHOD\u0027: \u0027GET\u0027}, self.start_response))"},{"line_number":161,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fffc6b78_0927cf14","line":158,"updated":"2020-11-20 00:51:40.000000000","message":"Another way to look at it: we\u0027re catching the error that caused the app to not uphold its contract to send all those bytes (since we don\u0027t have anything else that would catch it).\n\nI think the real trouble is that eventlet doesn\u0027t just trash the connection once it\u0027s exhausted the iterator without emitting enough bytes. Maybe I should try for a patch there...","commit_id":"a60c4cf0df19bb64bd6805e9d3556e25bce80ff0"}]}
