)]}'
{"id":"openstack%2Fswift~956194","triplet_id":"openstack%2Fswift~stable%2F2025.1~Id39fd71bc59875a5b88d1d012542136acf880019","project":"openstack/swift","branch":"stable/2025.1","topic":"aws-chunked-backport","attention_set":{},"removed_from_attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2025-08-06 23:13:01.000000000","reason":"Change was submitted"},"15343":{"account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"last_update":"2025-08-05 16:14:59.000000000","reason":"\u003cGERRIT_ACCOUNT_15343\u003e replied on the change","reason_account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}}},"hashtags":[],"change_id":"Id39fd71bc59875a5b88d1d012542136acf880019","subject":"s3api: Validate additional checksums on upload","status":"MERGED","created":"2025-07-30 20:18:08.000000000","updated":"2025-08-06 23:13:01.000000000","submitted":"2025-08-06 23:13:01.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"956194-aws-chunked-backport","meta_rev_id":"a02adbb9b6d03ad0b2c008b058227a37e8dc1c99","_number":956194,"virtual_id_number":956194,"owner":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-08-06 23:13:01.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2025-08-06 21:58:26.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"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":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2025-08-06 21:58:26.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"}],"reviewers":{"REVIEWER":[{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-07-30 20:18:08.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"state":"REVIEWER"},{"updated":"2025-07-30 21:54:20.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"}],"messages":[{"id":"0e9093f0c89692484327e2430a280a813c31b22f","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-07-30 20:18:08.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"a9ca60cb2cfba84ff25fc513b2612ec3f68eaef3","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-07-30 20:51:05.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"0a0653e04ed666406e6365a8ab93e5c67721f4ff","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-30 21:54:20.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/3a60e9e23142404a83cf6a7b84514b67\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/247b2fdddf42491fa61e486ec400a4d0 : SUCCESS in 11m 06s\n- grenade https://zuul.opendev.org/t/openstack/build/eae9a6130440454da9f8b5a8c9ccf014 : SUCCESS in 29m 11s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/bddc33f9b170442e948f0cf1df34368e : SUCCESS in 49m 22s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/8e4c009ebefa4a8695da468bd4bfc9e4 : SUCCESS in 32m 11s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/c477cd3c29474c8d8eb3f24971e205ca : SUCCESS in 34m 16s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/de95734bc45941aba9357247a5bec9ee : SUCCESS in 18m 21s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4c6f059953ff47cf897ed4e5b6fce7e6 : SUCCESS in 21m 59s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e6897558d7ca4a58a1fa9645573400a0 : SUCCESS in 10m 52s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/0164e191687241129e265514409db603 : SUCCESS in 5m 38s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/980ccfa7ab6946fab34e615a196477e6 : SUCCESS in 16m 37s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/0b0c949b14b84604b3c5a720836aa5b2 : SUCCESS in 15m 28s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/cb3ff44aedac4486905abcbf26a78f63 : SUCCESS in 22m 23s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/94af1b7c553b4aad842c8b67ef4fcf00 : SUCCESS in 16m 29s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/4c170283ebcc41de9e0523b13bbda58c : SUCCESS in 15m 33s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/fc5d74c8e212416bafd04e7924383f8f : SUCCESS in 13m 06s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/a6ee34d0e9074e729449117e76ba048f : SUCCESS in 6m 21s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/182807dcdaa746609908d99468cfb2df : SUCCESS in 7m 57s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/32288c770e2a45ffbf9bb4f1ed241ceb : SUCCESS in 4m 47s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/eeb9e30b02c74cf0b9d7268b45cfb8c8 : SUCCESS in 52m 53s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6af0b66e1acd453d995403b7fd2f4c78 : SUCCESS in 46m 45s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/12b6012ff83a4703b14d1b7bea235afc : SUCCESS in 39m 46s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/ba96c99999a54cbb9c2646a88f3e9abb : SUCCESS in 21m 24s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f6b6b70ef7c84a479018c32cc8091bc5 : SUCCESS in 4m 24s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/6c6c86caafcf46acac665e6a5e1953f4 : FAILURE in 8m 06s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/85c427fa7f7e4988a2b89086382b996b : SUCCESS in 47m 57s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/836ed50acade4436a5a610cd8189102f : SUCCESS in 50m 16s","accounts_in_message":[],"_revision_number":2},{"id":"8022f60aae748cb9b02a12b023d9d6c9b7fa444d","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-30 22:11:51.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/13033ac80abb4e4aabd5de709b6ff208\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/545986d1817843d6af51fa97f7b4b88f : SUCCESS in 1h 07m 02s","accounts_in_message":[],"_revision_number":2},{"id":"54e21264d0f39dca0f301d6c7bead33432538fb1","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-08-05 16:14:59.000000000","message":"Patch Set 2:\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"ea555fdb827242ea1a605217ff29600859c42879","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-05 17:20:58.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bb813bd2a929422f9185057b470e993f\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ee6df2326f384fa5aa3c7f55c94a309f : SUCCESS in 4m 38s\n- grenade https://zuul.opendev.org/t/openstack/build/4e98bcca754b4150b7dbe623816114fe : SUCCESS in 53m 16s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0f161cf018954eb49ffdd0cb1d514091 : SUCCESS in 26m 46s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/29de95e2dba04c03a8ec620f1001feb6 : SUCCESS in 51m 27s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/94fdec1437cb4141a1455aeea1721a1a : SUCCESS in 1h 00m 36s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cdca731cd3364297980161d7383f363c : SUCCESS in 15m 57s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/17518d8db04b43e486083b2b2c48d8ac : SUCCESS in 22m 12s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/dd8029802d714e9e9432c7b4da8222ef : SUCCESS in 16m 42s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/94c5f838d59647c8a3fd488293b15a6e : SUCCESS in 3m 45s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/d3537df98b8c4ee986806d3e7001e7b9 : SUCCESS in 11m 35s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/813733d793c24a6c83c8f17d5966e4f9 : SUCCESS in 29m 59s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/5886b95a592a42a6a6c826d9e9b13fcc : SUCCESS in 25m 34s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/8ea124f3de4c4f89b0362f5575238042 : SUCCESS in 14m 14s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/86d4967fd4f649d9be4f6340db66db8c : SUCCESS in 12m 49s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/307f5aff12ba4deaa34de75af633b2ee : SUCCESS in 13m 19s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/6d4c75b25a884010b768ac62a5dccfcd : SUCCESS in 6m 49s\n- swift-tox-func-s3api-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/e5b2b8660aad410d9c5ddc4456b28f9d : SUCCESS in 13m 35s (non-voting)\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/fd8efb4835964063943aea1195bb11a9 : SUCCESS in 8m 05s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/5302e7c92a694c8facdf6f8108a928c2 : SUCCESS in 54m 10s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/deed24a18f03423f8f7fa1c794a50a9f : SUCCESS in 18m 26s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/3c8a3eede7534c4da89847573754d37c : SUCCESS in 32m 04s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/325e1d16edbf405693397e6fe4aa218c : SUCCESS in 20m 43s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5802a389901b4b1e888cfa080aaef596 : SUCCESS in 4m 12s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/31618002f4a14da281b1e46a9030b03a : SUCCESS in 19m 13s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/8de02f7be45c4cd98d7f83e5d88dfa48 : SUCCESS in 48m 34s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/ab92ce99f9e1468cbb8c7afce60357f8 : SUCCESS in 46m 27s","accounts_in_message":[],"_revision_number":2},{"id":"968dda2a3ba2128def0136efad1adf2a6dab759b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-05 17:53:14.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c48c34916af44157b4b362265bc26754\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/71601aa7df854398a4bcdc995b9ea8d2 : SUCCESS in 1h 36m 17s","accounts_in_message":[],"_revision_number":2},{"id":"d00944df9ed8153d42fe0b5407a2c449941749bf","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-08-06 21:58:26.000000000","message":"Patch Set 2: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":2},{"id":"8c712f060d49216e5f18d9beffeb2436522026e8","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-06 21:59:01.000000000","message":"Patch Set 2: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":2},{"id":"c9713b96ca4e4da0d9c8117c6763dd3c3dce00a9","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-06 23:13:01.000000000","message":"Patch Set 2: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/2ff9ef4620614335b288e7cecdeeca01\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ebfb4fe09b9d4c4c932972f3f9a32ebb : SUCCESS in 8m 38s\n- grenade https://zuul.opendev.org/t/openstack/build/e4b009ef831c4a1dafa0a9702a35145c : SUCCESS in 55m 33s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/3f4ae875b6c84ed5a78abd047a7bc704 : SUCCESS in 25m 55s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/23fe598aae5145a3b74aeebf8ad68b3d : SUCCESS in 40m 33s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/2e306b263a3c4e8d962af120f7d57bad : SUCCESS in 51m 01s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/73ba34b86f394ea9bef220080a815a28 : SUCCESS in 5m 31s (non-voting)\n- swift-tox-py36 https://zuul.opendev.org/t/openstack/build/6b53655c4f844068bc9559d6770140d5 : SUCCESS in 8m 37s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/06c087a3435b458589b51106bbc3d11b : SUCCESS in 9m 38s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/17494a996ec648099ddc87ce7e0c95ad : SUCCESS in 26m 48s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/36c2c84f2deb417f879659b1cc3ebc9d : SUCCESS in 15m 02s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/3469705c281a4662ba239c7425976547 : SUCCESS in 18m 31s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0cc72d9875a84f0fb4c9bdd84197702e : SUCCESS in 15m 12s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/b4e35aa7bb0a4b98bc660b7630b76768 : SUCCESS in 8m 22s\n- swift-tox-func-s3api-tests-tempauth https://zuul.opendev.org/t/openstack/build/3aede2ee72094f6d9e5e10a3aa20c1e7 : SUCCESS in 5m 23s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/e52f1df21e9b4eb6bf6bf13c075bf131 : SUCCESS in 46m 02s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/b7129be7046e4142826d996855cf7a1b : SUCCESS in 51m 52s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/318acade63de40048a42b39661a00d2a : SUCCESS in 44m 17s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e68c668382ab4a64a6759ca3c9ddabc3 : SUCCESS in 19m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/55bd42732c4941be8fe95bc7e3148423 : SUCCESS in 2m 19s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/b7777ab14d6a45f59616a11a5913bb80 : SUCCESS in 20m 04s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/4e94e460789d4aac8fa10c25e4ff12c6 : SUCCESS in 47m 16s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4aad8071f29a4605b0d4cd6b6134e44f : SUCCESS in 28m 09s","accounts_in_message":[],"_revision_number":2},{"id":"a02adbb9b6d03ad0b2c008b058227a37e8dc1c99","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-08-06 23:13:01.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"9539a85bf237fc419a4cf62427139c8645f7c88b","revisions":{"aa537e3133736d82e33f1974fb4f7a3ef3d0c7a2":{"kind":"REWORK","_number":1,"created":"2025-07-30 20:18:08.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/94/956194/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/94/956194/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/94/956194/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/94/956194/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/94/956194/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/94/956194/1"}}},"commit":{"parents":[{"commit":"419633e52c9201f041d4403f368d255e35ac4443","subject":"utils: Add CRCHasher and crc32c implementation","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/419633e52c9201f041d4403f368d255e35ac4443"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2025-04-11 23:58:30.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2025-07-30 20:17:58.000000000","tz":-420},"subject":"s3api: Validate additional checksums on upload","message":"s3api: Validate additional checksums on upload\n\nSee https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html\nfor some background.\n\nThis covers both \"normal\" objects and part-uploads for MPUs. Note that\nbecause we don\u0027t write down any client-provided checksums during\ninitiate-MPU calls, we can\u0027t do any verification during complete-MPU\ncalls.\n\ncrc64nvme checksums are not yet supported; clients attempting to use\nthem will get back 501s.\n\nAdds crt as a boto3 extra to test-requirements. The extra lib provides\ncrc32c and crc64nvme checksum support in boto3.\n\nCo-Authored-By: Ashwin Nair \u003cashnair@nvidia.com\u003e\nCo-Authored-By: Alistair Coles \u003calistairncoles@gmail.com\u003e\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nChange-Id: Id39fd71bc59875a5b88d1d012542136acf880019\n(cherry picked from commit be56c1e25822a23a6f6ad30d190782a395f3149f)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/aa537e3133736d82e33f1974fb4f7a3ef3d0c7a2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/aa537e3133736d82e33f1974fb4f7a3ef3d0c7a2"}]},"branch":"refs/heads/stable/2025.1"},"9539a85bf237fc419a4cf62427139c8645f7c88b":{"kind":"REWORK","_number":2,"created":"2025-07-30 20:51:05.000000000","uploader":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"ref":"refs/changes/94/956194/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/94/956194/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/94/956194/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/94/956194/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/94/956194/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/94/956194/2"}}},"commit":{"parents":[{"commit":"02d5833cd992eff954f72e305bb2623aab108c66","subject":"utils: Add CRCHasher and crc32c implementation","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/02d5833cd992eff954f72e305bb2623aab108c66"}]}],"author":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2025-04-11 23:58:30.000000000","tz":-420},"committer":{"name":"Tim Burke","email":"tim.burke@gmail.com","date":"2025-07-30 20:50:58.000000000","tz":-420},"subject":"s3api: Validate additional checksums on upload","message":"s3api: Validate additional checksums on upload\n\nSee https://docs.aws.amazon.com/AmazonS3/latest/userguide/checking-object-integrity.html\nfor some background.\n\nThis covers both \"normal\" objects and part-uploads for MPUs. Note that\nbecause we don\u0027t write down any client-provided checksums during\ninitiate-MPU calls, we can\u0027t do any verification during complete-MPU\ncalls.\n\ncrc64nvme checksums are not yet supported; clients attempting to use\nthem will get back 501s.\n\nAdds crt as a boto3 extra to test-requirements. The extra lib provides\ncrc32c and crc64nvme checksum support in boto3.\n\nCo-Authored-By: Ashwin Nair \u003cashnair@nvidia.com\u003e\nCo-Authored-By: Alistair Coles \u003calistairncoles@gmail.com\u003e\nSigned-off-by: Tim Burke \u003ctim.burke@gmail.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nChange-Id: Id39fd71bc59875a5b88d1d012542136acf880019\n(cherry picked from commit be56c1e25822a23a6f6ad30d190782a395f3149f)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9539a85bf237fc419a4cf62427139c8645f7c88b"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9539a85bf237fc419a4cf62427139c8645f7c88b"}]},"branch":"refs/heads/stable/2025.1"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","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":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"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":{}}},{"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":{}}}]}
