)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"1259a95e7b00ae170ea5690b0cae6390f57d8e00","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d3424b88_4629632a","updated":"2025-07-10 17:29:50.000000000","message":"I\u0027ll try the cross-compat tests against AWS today.","commit_id":"c672af2ae2e974d158ba0e448ad3a554c1c101f5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b532fa654b531b1ec9f18a69d860b981bb09a20b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"adf20a7c_a264f10a","in_reply_to":"d3424b88_4629632a","updated":"2025-07-11 17:58:31.000000000","message":"Oh yeah, and I *did* finally get around to running the cross-compat tests against AWS -- all good 👍","commit_id":"c672af2ae2e974d158ba0e448ad3a554c1c101f5"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"9c2a0f2055bb262d0cb59a5bc50569a361199278","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"afbe9cb7_25e5c705","updated":"2025-07-16 06:36:34.000000000","message":"Nice, also a no brainer, nice clean up and more assert \u003d\u003d win.","commit_id":"61c0bfcf957155ea47c639be624076af6a7aba38"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"5e9f7e5429ef3ae0351460dfa232d47ece32415c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"37ed136b_49f41caf","updated":"2025-07-16 16:55:16.000000000","message":"recheck\n\nthe parent patch has now merged","commit_id":"61c0bfcf957155ea47c639be624076af6a7aba38"}],"test/s3api/test_input_errors.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"1259a95e7b00ae170ea5690b0cae6390f57d8e00","unresolved":true,"context_lines":[{"line_number":627,"context_line":"        self.assertIn(\"\u003cMessage\u003eThe %s you specified did not match the \""},{"line_number":628,"context_line":"                      \"calculated checksum.\u003c/Message\u003e\" % crc_type,"},{"line_number":629,"context_line":"                      respbody)"},{"line_number":630,"context_line":"        self.assertNotIn(\u0027Expected\u0027, respbody)"},{"line_number":631,"context_line":"        self.assertNotIn(\u0027Computed\u0027, respbody)"},{"line_number":632,"context_line":""},{"line_number":633,"context_line":"    def assertIncompleteBody("},{"line_number":634,"context_line":"        self,"}],"source_content_type":"text/x-python","patch_set":1,"id":"242174c5_573baaf7","line":631,"range":{"start_line":630,"start_character":8,"end_line":631,"end_character":46},"updated":"2025-07-10 17:29:50.000000000","message":"Thanks. I still hadn\u0027t gotten around to checking.","commit_id":"c672af2ae2e974d158ba0e448ad3a554c1c101f5"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"da669792ecf03f16dcd968a7e5fb9c4686b1fdff","unresolved":false,"context_lines":[{"line_number":627,"context_line":"        self.assertIn(\"\u003cMessage\u003eThe %s you specified did not match the \""},{"line_number":628,"context_line":"                      \"calculated checksum.\u003c/Message\u003e\" % crc_type,"},{"line_number":629,"context_line":"                      respbody)"},{"line_number":630,"context_line":"        self.assertNotIn(\u0027Expected\u0027, respbody)"},{"line_number":631,"context_line":"        self.assertNotIn(\u0027Computed\u0027, respbody)"},{"line_number":632,"context_line":""},{"line_number":633,"context_line":"    def assertIncompleteBody("},{"line_number":634,"context_line":"        self,"}],"source_content_type":"text/x-python","patch_set":1,"id":"6eb3016d_27e3b9d2","line":631,"range":{"start_line":630,"start_character":8,"end_line":631,"end_character":46},"in_reply_to":"242174c5_573baaf7","updated":"2025-07-11 09:31:42.000000000","message":"Acknowledged","commit_id":"c672af2ae2e974d158ba0e448ad3a554c1c101f5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"1259a95e7b00ae170ea5690b0cae6390f57d8e00","unresolved":true,"context_lines":[{"line_number":2291,"context_line":"            b\u0027%x\\r\\n%s\\r\\n\u0027 % (len(chunk), chunk)"},{"line_number":2292,"context_line":"            for chunk in [TEST_BODY, b\u0027\u0027])[:-2]"},{"line_number":2293,"context_line":"        chunked_body +\u003d \u0027\u0027.join(["},{"line_number":2294,"context_line":"            f\u0027x-amz-checksum-crc32: {\"not\u003dbase-64\"}\\r\\n\u0027,"},{"line_number":2295,"context_line":"        ]).encode(\u0027ascii\u0027)"},{"line_number":2296,"context_line":"        resp \u003d self.conn.make_request("},{"line_number":2297,"context_line":"            self.bucket_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"572d7c1d_b09715eb","line":2294,"range":{"start_line":2294,"start_character":12,"end_line":2294,"end_character":56},"updated":"2025-07-10 17:29:50.000000000","message":"Well *that* was a weird way for us to spell that...","commit_id":"c672af2ae2e974d158ba0e448ad3a554c1c101f5"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"da669792ecf03f16dcd968a7e5fb9c4686b1fdff","unresolved":false,"context_lines":[{"line_number":2291,"context_line":"            b\u0027%x\\r\\n%s\\r\\n\u0027 % (len(chunk), chunk)"},{"line_number":2292,"context_line":"            for chunk in [TEST_BODY, b\u0027\u0027])[:-2]"},{"line_number":2293,"context_line":"        chunked_body +\u003d \u0027\u0027.join(["},{"line_number":2294,"context_line":"            f\u0027x-amz-checksum-crc32: {\"not\u003dbase-64\"}\\r\\n\u0027,"},{"line_number":2295,"context_line":"        ]).encode(\u0027ascii\u0027)"},{"line_number":2296,"context_line":"        resp \u003d self.conn.make_request("},{"line_number":2297,"context_line":"            self.bucket_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a131879_68b70cd4","line":2294,"range":{"start_line":2294,"start_character":12,"end_line":2294,"end_character":56},"in_reply_to":"572d7c1d_b09715eb","updated":"2025-07-11 09:31:42.000000000","message":"Done","commit_id":"c672af2ae2e974d158ba0e448ad3a554c1c101f5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"1259a95e7b00ae170ea5690b0cae6390f57d8e00","unresolved":true,"context_lines":[{"line_number":2308,"context_line":"        self.assertIn(b\u0027\u003cMessage\u003eValue for x-amz-checksum-crc32 trailing \u0027"},{"line_number":2309,"context_line":"                      b\u0027header is invalid.\u003c/Message\u003e\u0027, resp.content)"},{"line_number":2310,"context_line":"        self.assertNotIn(b\u0027Expected\u0027, resp.content)"},{"line_number":2311,"context_line":"        self.assertNotIn(b\u0027Computed\u0027, resp.content)"},{"line_number":2312,"context_line":""},{"line_number":2313,"context_line":"    def test_strm_unsgnd_pyld_trl_content_sha256_in_trailer(self):"},{"line_number":2314,"context_line":"        chunked_body \u003d b\u0027\u0027.join("}],"source_content_type":"text/x-python","patch_set":1,"id":"f3e90ca7_763004a5","line":2311,"updated":"2025-07-10 17:29:50.000000000","message":"These I\u0027m less certain about -- doesn\u0027t hurt, certainly, but then I remember places where we\u0027d do something like\n```\nraise MissingSecurityHeader(missing_header_name\u003d\u0027x-amz-acl\u0027)\n```\nor\n```\nsuper(InvalidArgument, self).__init__(err_msg,\n                                      argument_name\u003d\u0027partNumber\u0027,\n                                      argument_value\u003dvalue)\n```\nand wonder whether they might reflect it back *somewhere* -- a pair of `\u003cHeaderName\u003e`/`\u003cHeaderValue\u003e` elements, say? I ought to just take a look, but maybe this would be better as\n```\nself.assertNotIn(b\u0027not\u003dbase-64\u0027, resp.content)\n```\nregardless?","commit_id":"c672af2ae2e974d158ba0e448ad3a554c1c101f5"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"da669792ecf03f16dcd968a7e5fb9c4686b1fdff","unresolved":true,"context_lines":[{"line_number":2308,"context_line":"        self.assertIn(b\u0027\u003cMessage\u003eValue for x-amz-checksum-crc32 trailing \u0027"},{"line_number":2309,"context_line":"                      b\u0027header is invalid.\u003c/Message\u003e\u0027, resp.content)"},{"line_number":2310,"context_line":"        self.assertNotIn(b\u0027Expected\u0027, resp.content)"},{"line_number":2311,"context_line":"        self.assertNotIn(b\u0027Computed\u0027, resp.content)"},{"line_number":2312,"context_line":""},{"line_number":2313,"context_line":"    def test_strm_unsgnd_pyld_trl_content_sha256_in_trailer(self):"},{"line_number":2314,"context_line":"        chunked_body \u003d b\u0027\u0027.join("}],"source_content_type":"text/x-python","patch_set":1,"id":"ffd65ae0_1671856c","line":2311,"in_reply_to":"f3e90ca7_763004a5","updated":"2025-07-11 09:31:42.000000000","message":"oh, yeah, good catch. We might not expect \u0027Expected\u0027 or \u0027Computed\u0027 in this case.\n\nFWIW I did check that S3 does not return the value\n\n```\nAssertionError: b\u0027\u003cCode\u003exxxInvalidRequest\u003c/Code\u003e\u0027 not found in b\u0027\u003c?xml version\u003d\"1.0\" encoding\u003d\"UTF-8\"?\u003e\\n\u003cError\u003e\u003cCode\u003eInvalidRequest\u003c/Code\u003e\u003cMessage\u003eValue for x-amz-checksum-crc32 trailing header is invalid.\u003c/Message\u003e\u003cRequestId\u003e6QH05AN8DBTPD7P0\u003c/RequestId\u003e\u003cHostId\u003eNTSKErVaBk1p4DZOzR1QaYpQVPtV1jgSD4Vm40fvg0EesqwB0C8JjEvlDHKWLhf4vRoVd2BFdCI\u003d\u003c/HostId\u003e\u003c/Error\u003e\u0027\n```\n\nbut the test ought to fail if ever S3 changed. Will fix.","commit_id":"c672af2ae2e974d158ba0e448ad3a554c1c101f5"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b532fa654b531b1ec9f18a69d860b981bb09a20b","unresolved":false,"context_lines":[{"line_number":2308,"context_line":"        self.assertIn(b\u0027\u003cMessage\u003eValue for x-amz-checksum-crc32 trailing \u0027"},{"line_number":2309,"context_line":"                      b\u0027header is invalid.\u003c/Message\u003e\u0027, resp.content)"},{"line_number":2310,"context_line":"        self.assertNotIn(b\u0027Expected\u0027, resp.content)"},{"line_number":2311,"context_line":"        self.assertNotIn(b\u0027Computed\u0027, resp.content)"},{"line_number":2312,"context_line":""},{"line_number":2313,"context_line":"    def test_strm_unsgnd_pyld_trl_content_sha256_in_trailer(self):"},{"line_number":2314,"context_line":"        chunked_body \u003d b\u0027\u0027.join("}],"source_content_type":"text/x-python","patch_set":1,"id":"2e5be11d_30b37f81","line":2311,"in_reply_to":"ffd65ae0_1671856c","updated":"2025-07-11 17:58:31.000000000","message":"Done","commit_id":"c672af2ae2e974d158ba0e448ad3a554c1c101f5"}]}
