)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"5fe863e179f7b479d3e21ec9cf232d28e97ad3fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"abaa7018_fac1944b","updated":"2026-11-03 16:15:42.000000000","message":"I LOVE this - we definately need to go in the direction of pulling the checksum validation/persistence logic out of the `S3Request.__init__` and into the controllers.  It will make a number of things simpler:\n\n1) less bugs, like this one\n2) one place to validate \u0026 install_checksum_wrappers (e.g. after we know the manifest checksum algo)\n3) less trying to \"back into controller operation from request params\" special case logic in S3Request - which is already quite gnarly\n4) easier to fix special case AWS bug-for-bug rules like e.g. \"don\u0027t reject COPY request with invalid checksum-value\" (no idea why AWS wouldn\u0027t allow you to specify an expected result checksum for the copy destination result)\n\nI think we should lean in this direction and go further:\n\n1013939: WIP Configure checksum validation explicitly from controllers | https://review.opendev.org/c/openstack/swift/+/1013939","commit_id":"5032f1fa80494c421130966c19750350ed5a7859"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"227a4698a745565302b177b7ebd22c6909c8dce7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f4deb397_86a7e4e0","updated":"2026-11-03 18:13:54.000000000","message":"Need to take a closer look, but I like this idea very much!","commit_id":"5032f1fa80494c421130966c19750350ed5a7859"},{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"75c8eebe4ea5274daed3d06ae1ff52d83c2cb87e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"dd97b191_3b3699ce","updated":"2026-11-03 23:28:38.000000000","message":"no, it was squashed into https://review.opendev.org/c/openstack/swift/+/1002405/36","commit_id":"5032f1fa80494c421130966c19750350ed5a7859"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"d791ade593aaae3166e0d35092624c1962ae635b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f803a448_3c4c8f1f","updated":"2026-11-03 18:12:29.000000000","message":"this does not go far enough. The CompleteMultipartUpload should also NOT depend on allow_store_checksums, but just depend on the checksum sysmeta on the MPU session/marker object.\n\nThe principle I am advocating is that allow_store_checksums should be checked only *once* for an MPU, during the CreateMultipartUpload. That is sufficient to know that the cluster is upgraded and capable of persisting checksums. Further checks on allow_store_checksums are not necessary and may result in unnecessarily failing to persist the checksum during CompleteMultipartUpload.","commit_id":"5032f1fa80494c421130966c19750350ed5a7859"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"42a774b2214ece21f0771273ccdd45023b838caa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5418e84d_484f096d","updated":"2026-11-03 19:02:11.000000000","message":"we also want to squash 1013962: sq? Persist completed MPU checksums from session settings | https://review.opendev.org/c/openstack/swift/+/1013962\n\n... it also (should?) fix the flake8 issue","commit_id":"5032f1fa80494c421130966c19750350ed5a7859"},{"author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"change_message_id":"b4e25251cb29b2eebc945a37f1d9442f6b71fbfb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1b201a69_09cb281f","in_reply_to":"dd97b191_3b3699ce","updated":"2026-11-03 23:34:38.000000000","message":"actually https://review.opendev.org/c/openstack/swift/+/993193/","commit_id":"5032f1fa80494c421130966c19750350ed5a7859"}],"test/unit/common/middleware/s3api/test_multi_upload.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"704de9f7bdc055ffab4feda3c19ec2c2f51527a2","unresolved":false,"context_lines":[{"line_number":1320,"context_line":"                    # part checksum is persisted"},{"line_number":1321,"context_line":"                    self.assertIn(\u0027x-amz-checksum-crc32\u0027, headers)"},{"line_number":1322,"context_line":"                    self.assertIn(\u0027swift.callback.update_footers\u0027,"},{"line_number":1323,"context_line":"                                     self.swift.call_list[-1].env)"},{"line_number":1324,"context_line":"                else:"},{"line_number":1325,"context_line":"                    self.assertEqual(\u0027InvalidRequest\u0027,"},{"line_number":1326,"context_line":"                                     self._get_error_code(body))"}],"source_content_type":"text/x-python","patch_set":2,"id":"31a74298_4f0a8d00","line":1323,"updated":"2026-11-03 18:41:40.000000000","message":"pep8: E127 continuation line over-indented for visual indent","commit_id":"5032f1fa80494c421130966c19750350ed5a7859"}]}
