)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"0ca2853969e4ec05822c4bd6841747215a9b40ce","unresolved":true,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"The callback does not raise ErrorResponse exceptions. The callback is"},{"line_number":14,"context_line":"called from inside the SLO response iterator (heartbeat\u003don). Raising"},{"line_number":15,"context_line":"an exception would have an unpredictable outcome depending on the"},{"line_number":16,"context_line":"timing w.r.t. SLO heartbeats and heartbeat forwarding in the"},{"line_number":17,"context_line":"UploadController.POST\u0027s own resp_iter. The callback therefore"},{"line_number":18,"context_line":"maintains a list of ErrorResponse(s) and returns a single fixed"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"200ff8f9_dbe685b7","line":15,"range":{"start_line":15,"start_character":27,"end_line":15,"end_character":49},"updated":"2026-08-13 17:35:17.000000000","message":"this might warrant a bit more explanation:\n\nthe mpu controller suppresses heartbeat bytes for 10seconds* https://github.com/openstack/swift/blob/master/swift/common/middleware/s3api/controllers/multi_upload.py#L822\n\n...which means that sometimes (and generally in unit tests) the manifest check error resp from slo *will* be the first chunk to land in the reiterate and an exception raised in the resp iter before that moment *would* become the client response.\n\nBut other times the first chunk to hit the reiterate is a heartbeat byte and the client gets a 200 *before* any exception that might be raised in the callback.\n\n\nSee this comment on the MPU checksums patch https://review.opendev.org/c/openstack/swift/+/993193/comment/5668e09a_b50c2c84/\n\n\nI don\u0027t like that unpredictability/ambiguity, so I don\u0027t want exceptions coming out of the callback. On master the callback does NOT raise exceptions: there\u0027s one kind of error (part too small) and its codified in the problem_segments. But with MPU checksumming being added to the callback there\u0027s more error varieties to handle and the codification/decodification would get IMHO silly, and it\u0027s too tempting to raise an exception. The pattern proposed here addresses that temptation :)\n\n*note: the suppression is only there to keep some tests happy - maybe it isn\u0027t even necessary any more ?!?","commit_id":"4f7878235c1af88a907d1ec4c1455e9756fed045"}],"swift/common/middleware/s3api/controllers/multi_upload.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"d8cdde3a428f58cc3d0df1b563a033729ae47d87","unresolved":true,"context_lines":[{"line_number":226,"context_line":"                    self._errors.append("},{"line_number":227,"context_line":"                        EntityTooSmall("},{"line_number":228,"context_line":"                            \u0027s3api requires that each segment be at least \u0027"},{"line_number":229,"context_line":"                            \u0027%d bytes\u0027 % self.min_segment_size))"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def __call__(self, manifest):"},{"line_number":232,"context_line":"        \"\"\"Validate the manifest.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"33267997_e007d1cb","line":229,"updated":"2026-08-13 16:58:07.000000000","message":"AFAICT we could just ``break`` here - we only need one error, but on master the hook returns a problem for every under-size segment","commit_id":"4f7878235c1af88a907d1ec4c1455e9756fed045"},{"author":{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},"change_message_id":"226b4e1acd9fbadc79249432bab53570294980c4","unresolved":true,"context_lines":[{"line_number":226,"context_line":"                    self._errors.append("},{"line_number":227,"context_line":"                        EntityTooSmall("},{"line_number":228,"context_line":"                            \u0027s3api requires that each segment be at least \u0027"},{"line_number":229,"context_line":"                            \u0027%d bytes\u0027 % self.min_segment_size))"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def __call__(self, manifest):"},{"line_number":232,"context_line":"        \"\"\"Validate the manifest.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"c4d8f241_4afbac06","line":229,"in_reply_to":"33267997_e007d1cb","updated":"2026-08-13 18:58:20.000000000","message":"Yea... I agree with I think we can just `break` here...","commit_id":"4f7878235c1af88a907d1ec4c1455e9756fed045"}]}
