)]}'
{"id":"openstack%2Fswift~1002778","triplet_id":"openstack%2Fswift~master~I8b3397de018ded25c503b0474fa9bc4fa04504e6","project":"openstack/swift","branch":"master","attention_set":{"1179":{"account":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"last_update":"2026-08-30 03:32:39.000000000","reason":"\u003cGERRIT_ACCOUNT_34930\u003e replied on the change","reason_account":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"}}},"removed_from_attention_set":{},"hashtags":[],"change_id":"I8b3397de018ded25c503b0474fa9bc4fa04504e6","subject":"s3api: Test final composite checksum mismatch","status":"NEW","created":"2026-08-28 15:04:22.000000000","updated":"2026-08-31 15:17:43.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":3,"unresolved_comment_count":2,"has_review_started":true,"meta_rev_id":"9f4906c9916b4394e600230c0b11fed7b8b00f4e","_number":1002778,"virtual_id_number":1002778,"owner":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},{"tag":"autogenerated:zuul:check","value":1,"date":"2026-08-30 03:41:49.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"all":[{"value":2,"date":"2026-08-30 03:32:39.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"all":[{"value":1,"date":"2026-08-31 15:17:43.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-28 15:21:43.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2026-08-30 03:32:39.000000000","updated_by":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"reviewer":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"state":"REVIEWER"}],"messages":[{"id":"8006227937a489ce886e7287e389425c73a5e645","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2026-08-28 15:04:22.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"931cba91fa407a966a6b32f6b0cf209f3ef55145","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-28 15:21:43.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/31fac08194064c078414a1f64a96cdd5\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e64e5f4d2f014ce187be43abee4faa86 : SUCCESS in 4m 58s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/e1e9851b9fa443fba479fa02415cecfc : SUCCESS in 9m 52s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/3b1319bb45a2449fb5e5eb84fff980cc : SUCCESS in 6m 51s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/caa33e4c1fe1470eb49df8c1f6e93689 : SUCCESS in 11m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ccad46a57d814a16b0baad93696029cd : SUCCESS in 3m 05s","accounts_in_message":[],"_revision_number":1},{"id":"de75ac87b2c747ef0a7122048a3061042191f9b9","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-28 15:44:53.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/23e3812db194462f88577f584dcdce1c\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/21d7e614c7eb40e58a1ecf56ee442073 : SUCCESS in 36m 00s","accounts_in_message":[],"_revision_number":1},{"id":"30ede41a89014e2e407aa2794771120a93954615","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-08-30 03:17:41.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"26961144181d4de7eb04cb6476cd99b92b308337","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-08-30 03:32:39.000000000","message":"Patch Set 2: Code-Review+2\n\n(3 comments)","accounts_in_message":[],"_revision_number":2},{"id":"4da718e31ba3cffd70032baa2f0aad3814ecf82b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-30 03:41:49.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d696abd47b624247b172b66d2f514b7f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7a16017c2d1b4a908771dc3a14e9c31b : SUCCESS in 11m 00s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/0e5cd5c47e9b42babf1eb13c547795df : SUCCESS in 9m 31s\n- swift-build-image https://zuul.opendev.org/t/openstack/build/684290948b424e3684e0bdb88f931fc2 : SUCCESS in 4m 59s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/60dc2529e7e14ee6b03c9213b78a1cfb : SUCCESS in 14m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f65be9a997754dec8b868b554ea34630 : SUCCESS in 3m 11s","accounts_in_message":[],"_revision_number":2},{"id":"95862686292c526388b3775feb3239ebc2c0eece","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-30 04:56:47.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4c13a2edc2cc4d0a89afbd094f314dad\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3038f8a786ba45939c4106eaa06e0223 : SUCCESS in 1h 14m 31s","accounts_in_message":[],"_revision_number":2},{"id":"9f4906c9916b4394e600230c0b11fed7b8b00f4e","author":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"date":"2026-08-31 15:17:43.000000000","message":"Patch Set 2: Workflow+1","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"4a11a9b3bca525bf3bab5e9eb4c56b4683da195e","revisions":{"5f13b0f0f62573e99d8a5f585a565066e920e451":{"kind":"REWORK","_number":1,"created":"2026-08-28 15:04:22.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/78/1002778/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/78/1002778/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/78/1002778/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/78/1002778/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/78/1002778/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/78/1002778/1"}}},"commit":{"parents":[{"commit":"094beb844f83cbfc2a6243afdc4b979d49a38845","subject":"s3api: don\u0027t base64-validate checksum values on all POSTs","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/094beb844f83cbfc2a6243afdc4b979d49a38845"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-08-28 14:56:13.000000000","tz":-300},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-08-28 14:56:13.000000000","tz":-300},"subject":"DNM: s3api does not validate composite checksums","message":"DNM: s3api does not validate composite checksums\n\nS3API accepts an invalid CRC32 composite checksum on Complete MPU,\nwhere AWS S3 returns BadDigest. Add a valid companion test and abort\nin-progress MPUs during test bucket cleanup.\n\nAssisted-By: Codex:gpt-5\nChange-Id: I8b3397de018ded25c503b0474fa9bc4fa04504e6\nSigned-off-by: Clay Gerrard \u003cclay.gerrard@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5f13b0f0f62573e99d8a5f585a565066e920e451"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/5f13b0f0f62573e99d8a5f585a565066e920e451"}]},"branch":"refs/heads/master"},"4a11a9b3bca525bf3bab5e9eb4c56b4683da195e":{"kind":"REWORK","_number":2,"created":"2026-08-30 03:17:41.000000000","uploader":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"},"ref":"refs/changes/78/1002778/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/78/1002778/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/78/1002778/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/78/1002778/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/78/1002778/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/78/1002778/2"}}},"commit":{"parents":[{"commit":"3eb67c54ef1b8b8c6ca539c7683e7d5d0cff9657","subject":"s3api: Checksum Persistence on CompleteMultipartUpload","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3eb67c54ef1b8b8c6ca539c7683e7d5d0cff9657"}]}],"author":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2026-08-28 14:56:13.000000000","tz":-300},"committer":{"name":"Jianjian Huo","email":"jhuo@nvidia.com","date":"2026-08-30 03:16:28.000000000","tz":-420},"subject":"s3api: Test final composite checksum mismatch","message":"s3api: Test final composite checksum mismatch\n\nAdd a cross-compat functional test for CompleteMultipartUpload when\nthe request supplies a syntactically valid CRC32 composite checksum\n(\u003cbase64\u003e-\u003cpart-count\u003e) with the correct part count, but the digest\ndoes not match the uploaded parts.\n\nUse two normally sized parts with valid per-part checksums so that no\npart-size or per-part-checksum error can mask the behavior. Verify that\nthe request is rejected with BadDigest, matching AWS S3.\n\nAssisted-By: Codex:gpt-5\nChange-Id: I8b3397de018ded25c503b0474fa9bc4fa04504e6\nCo-Authored-by: Jianjian Huo \u003cjhuo@nvidia.com\u003e\nSigned-off-by: Clay Gerrard \u003cclay.gerrard@gmail.com\u003e\nSigned-off-by: Jianjian Huo \u003cjhuo@nvidia.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4a11a9b3bca525bf3bab5e9eb4c56b4683da195e"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/4a11a9b3bca525bf3bab5e9eb4c56b4683da195e"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":34930,"name":"Jianjian Huo","email":"jhuo@nvidia.com","username":"jhuo"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
