)]}'
{"id":"openstack%2Fswift~1001356","triplet_id":"openstack%2Fswift~master~I6ba1e53eafe1437af168c893c9ee8f708e0c294a","project":"openstack/swift","branch":"master","topic":"p-s3api-mpu-copy-if-match","attention_set":{},"removed_from_attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2026-08-19 17:02:03.000000000","reason":"Change was submitted"},"6968":{"account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"last_update":"2026-08-19 14:32:33.000000000","reason":"\u003cGERRIT_ACCOUNT_6968\u003e replied on the change","reason_account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}},"39146":{"account":{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},"last_update":"2026-08-19 17:02:03.000000000","reason":"Change was submitted"},"34892":{"account":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"last_update":"2026-08-19 17:02:03.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I6ba1e53eafe1437af168c893c9ee8f708e0c294a","subject":"s3api: fix mpu copy error with x-amz-copy-source-if-match","status":"MERGED","created":"2026-08-18 14:16:43.000000000","updated":"2026-08-19 17:02:58.000000000","submitted":"2026-08-19 17:02:03.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":8,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"1001356-p-s3api-mpu-copy-if-match","meta_rev_id":"cee4e3ebc1b97966d863c4b44f5f21f51e91c63d","_number":1001356,"virtual_id_number":1001356,"owner":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"value":0,"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-08-19 17:02:03.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":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"all":[{"value":2,"date":"2026-08-19 14:38:00.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"value":0,"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},{"value":0,"_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":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"all":[{"value":1,"date":"2026-08-19 14:38:00.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"value":0,"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},{"value":0,"_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":[{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"}],"reviewers":{"REVIEWER":[{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-08-18 15:14:22.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":"CC"},{"updated":"2026-08-18 15:34:59.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-18 19:55:18.000000000","updated_by":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"reviewer":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"state":"REVIEWER"},{"updated":"2026-08-19 00:07:02.000000000","updated_by":{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},"reviewer":{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},"state":"REVIEWER"},{"updated":"2026-08-19 07:56:59.000000000","updated_by":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"reviewer":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"state":"REVIEWER"}],"messages":[{"id":"cd1dcfba99235f6b39e899a5c33d10eea710a8a4","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-18 14:16:43.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"3c99d3b7c4ea3fe5680511b63a10088da54a69b8","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-18 15:14:22.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/05913c5de29c4b9bb54b88418b6d9d66\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/db7f15de269647f980b0ce6ec3d079ca : SUCCESS in 55m 49s","accounts_in_message":[],"_revision_number":1},{"id":"7c9ead37c491cd14fbc841d3013848b767ad3dc4","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-18 15:34:59.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/23ef47c4f57b40ed93746842150a5a70\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9c910a58fc7e41118ea66b25df89e94d : SUCCESS in 11m 01s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/12a40e8c3c23465a9d8ee3c0d70a9ef0 : SUCCESS in 4m 11s\n- grenade https://zuul.opendev.org/t/openstack/build/7fa98d21b0fb4dafbf7b7554e2f66d1e : SUCCESS in 1h 10m 31s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/ab6f6af13ec14944af760ace39eeaa0a : SUCCESS in 1h 09m 55s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/926491cba2f046668867f51d1313f8a8 : SUCCESS in 31m 40s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/2da0db36343640b49f8eaca4bf09c9bf : SUCCESS in 1h 03m 53s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/a1e0d76cb01942219ee8024297029bb4 : SUCCESS in 16m 57s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8fa3ec4df3bc4f6fbc3b223db9bd5904 : SUCCESS in 22m 06s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/38044217486d41beac17adc33fa00e93 : SUCCESS in 22m 32s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/42d4497790204ebf8943cc8235272ff0 : SUCCESS in 4m 35s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/89a11e05b37b4597b94d01feb2fec732 : SUCCESS in 25m 09s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/1841187d2b084b6688fcf354b151c8b5 : SUCCESS in 11m 37s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/e18df23d7ae54079b5e840ea13469136 : SUCCESS in 28m 52s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/a2df16e1bd824fcd90739b5acd32e2a8 : SUCCESS in 11m 18s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/546bc5a155c347c8953b88524e5e5b5f : SUCCESS in 9m 07s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/3ed8aad414e54d6db7585b2409f7a44f : SUCCESS in 9m 59s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0ea0c6bdc19f4fa3a2670bc9be542cd9 : SUCCESS in 9m 39s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/d941bd316e2349768d04541ca616f575 : SUCCESS in 17m 45s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/11647df39e59435983d103b055c987dd : SUCCESS in 5m 16s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/cf7b316a65da446085f74f03af2766f9 : FAILURE in 4m 34s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/44e6a240f2d04e86a90ba627a83fcf45 : SUCCESS in 7m 51s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/4a3f9067f0454359ab7a1e3eda76b1eb : SUCCESS in 1h 06m 06s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/54ee6f274e0d4b04bf800d89a5962e4e : SUCCESS in 27m 33s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/567d47aa98ad40e19d60cbd2127347ce : SUCCESS in 34m 35s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/c4769fdbabbe4110b1e6b46cc2656456 : SUCCESS in 22m 08s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/2e6a8de3f4764dfd9b229eeb581bba61 : SUCCESS in 2m 56s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/d97c6ae4190f4459878aca2a4e72021b : SUCCESS in 17m 34s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/da96eeeec9044b93ab49b331006aa128 : SUCCESS in 28m 34s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":1},{"id":"abcbe04b112c9137ba08c19c9466e3fd0de6a8dd","author":{"_account_id":39146,"name":"Nathaniel Martes","display_name":"Nate Martes","email":"nmartes@NVIDIA.com","username":"nmartes"},"date":"2026-08-19 00:07:02.000000000","message":"Patch Set 1: Code-Review-1\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"cf43cc393e0fc33549adf68b6c455e30278a16f9","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-19 07:56:59.000000000","message":"Patch Set 1: Code-Review+2\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"b204c0fcff1ff27c223e15213c7adfbc83e8414b","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-19 08:05:11.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"f96047582717e70847274daf42854b1ec60b5d25","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-19 10:10:49.000000000","message":"Patch Set 1:\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"bee55d8814251d9b07da0386df6b723776cdb957","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-08-19 10:55:44.000000000","message":"Uploaded patch set 2.\n\nOutdated Votes:\n* Code-Review+2, Code-Review-1 (copy condition: \"changekind:TRIVIAL_REBASE OR is:MIN\")\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"5b96321968deea54791ebe45e79c9660feb3f60d","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 12:01:51.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1466cc1deeb240beb5fbacb4d4828e58\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3620354e8edc47c0962559eef83bbb6f : SUCCESS in 1h 03m 48s","accounts_in_message":[],"_revision_number":2},{"id":"d69df5999e49fdca0ddc01e96c44de5d4f1e1f6b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 12:07:34.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/99b7b9e3f3ef45a2a05b44ee1a8e5287\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9afbecf530ae45c38b4f47bdbda114fc : SUCCESS in 11m 00s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/5bdb7f1dbf4f43be8ac73872feb5d1be : SUCCESS in 4m 22s\n- grenade https://zuul.opendev.org/t/openstack/build/3f55dccd9c6048ef8e2c1c899bbcdba2 : SUCCESS in 37m 24s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0bd3241a4545496087ad830a5abb1d10 : SUCCESS in 1h 06m 00s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/f66aa9f7dec3493f961edbe2285b9b1c : SUCCESS in 32m 55s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/4c3d278ea41641e0ab68205ab2997bb0 : SUCCESS in 33m 30s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c5fd6915e36f4198bf656d275ec88c67 : SUCCESS in 17m 45s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/588454c165d147f386d231328a338935 : SUCCESS in 20m 01s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/245e0be459c3458b8b73211d3f583050 : SUCCESS in 26m 06s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/fe0bc157e929441e802be8750ec3ccd8 : SUCCESS in 5m 32s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/e180aefbaa554c939173696cf1d6b9d0 : SUCCESS in 25m 08s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/03b8222afc794df285f5df1e8beabe47 : SUCCESS in 24m 38s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/192576a8914b491089f30a8d8c7ccd8a : SUCCESS in 14m 44s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/e275a5d861684951bf2267993a28a834 : SUCCESS in 16m 35s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e5d21c2c44944725ae0139953d2c64d0 : SUCCESS in 15m 00s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/4dc6b5df19ff41f280682f96b59d7be4 : SUCCESS in 17m 43s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/09b0b0b6fdfa4a239571632d8b5ae998 : SUCCESS in 16m 32s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/0eb34ccf856b46a6af94c5500d1533a0 : SUCCESS in 17m 36s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/62d382500fd54bd0b316c0bae5676d2e : SUCCESS in 7m 19s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/a75c9f24a0fe458d8a3f12b380da7c77 : FAILURE in 4m 34s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/db0a742cf27f4df1ae167938788305a1 : SUCCESS in 4m 44s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/41739ee1e7aa44789cf1074e0a8e249e : SUCCESS in 1h 03m 51s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/6edab09ffd654f25851a37a6288836bf : SUCCESS in 48m 39s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/6a66b274d4a445bf86ca98224d49cff5 : SUCCESS in 28m 00s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/e4fb7c13f6c84c1cb3b6798259ce0798 : SUCCESS in 27m 41s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ee44254c2ecb4bc38a6ad7b6e664799d : SUCCESS in 3m 40s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/05e1dab4dd854c9f9448024dd55b7b35 : SUCCESS in 20m 07s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3011892ac6904aaebe60040cc4f0cbea : SUCCESS in 42m 08s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":2},{"id":"16deb809d88a94cd727d485beef9072307cda411","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-19 14:30:55.000000000","message":"Uploaded patch set 3: New patch set was added with same tree, parent tree, and commit message as Patch Set 2.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"6f46986195df319aa36dfcbf229388d9b1d415c2","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-19 14:32:33.000000000","message":"Patch Set 3:\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"10be08e71703dd72f76460b03488ef2005744e7a","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2026-08-19 14:38:00.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1\n\n(1 comment)","accounts_in_message":[],"_revision_number":3},{"id":"3cf11deffaf426f1bbdb642cb52a39472aea4c3a","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 15:34:39.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/23ca8ae42aeb49c5831f122c8acda932\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/11dc68fb74104dfb8ebbf24e1307769f : SUCCESS in 48m 36s","accounts_in_message":[],"_revision_number":3},{"id":"b0a34a00dad3b967744293e13cf4e04bf5ab3924","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 15:40:15.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/d34d60c1eb6f42e09a1ddaca6ec18145\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/c076f901ebfa49519ef5ceef21f28419 : SUCCESS in 8m 43s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/9a6c52abf11b45959ffc0e0a8f56e7c3 : SUCCESS in 11m 13s\n- grenade https://zuul.opendev.org/t/openstack/build/db014ae5b416429c9f909390919d82c2 : SUCCESS in 46m 16s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/82ecf0b70f9e43c6b17395e2c8029645 : SUCCESS in 1h 04m 00s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/7cbc8f4c9bc74625baca53bb44cc2bd2 : SUCCESS in 51m 52s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/a3890c572975430d998e7423830b92dc : SUCCESS in 59m 27s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/4735cef0883745dc8e02efd33d0325dc : SUCCESS in 14m 08s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/7e5a23b0a8944e70829bb1e038f4b65d : SUCCESS in 20m 52s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6d9d12187ec14c1fb75f972b0b7da74a : SUCCESS in 21m 31s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/84bcf1e8fcba46b4b593a033c3153ca8 : SUCCESS in 7m 27s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c1389f61703044829b2daec4bebe008a : SUCCESS in 20m 18s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/4b34a4e19bfa48da98b1d81fd9ba0d43 : SUCCESS in 18m 57s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/6ac4f6f37c7d481da929451e1f411ca4 : SUCCESS in 22m 59s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/3a1fa9d0bfad4ae8980aebd58bc858df : SUCCESS in 13m 05s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/e5b3b60684234602b5de5d20ec6048d7 : SUCCESS in 14m 41s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/fe7bb4c8921d4b87b463b12de720b703 : SUCCESS in 13m 34s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/0a582ea27b4c4a74aa7397df46f2d9e9 : SUCCESS in 16m 04s\n- swift-tox-func-py39-centos-9-stream https://zuul.opendev.org/t/openstack/build/5a4743d3d496499797aeb0669f261007 : SUCCESS in 17m 47s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/739d157a222b4321abb1e406dc32eb7d : SUCCESS in 4m 36s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/62dbafca2fc945ecbbcfd18c98f02d21 : FAILURE in 5m 47s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/aac45a300c1842378d67398b621c6c1f : SUCCESS in 9m 18s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/7dcb345f2a274b84a719b4547fb1ba1f : SUCCESS in 39m 00s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/e6c083ef69e2478fa20e47195817b6cb : SUCCESS in 37m 29s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/43bdd0c890d046ff915dd7e29dfa3257 : SUCCESS in 56m 16s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/fa07e4a03752483b9720cb89a3da14ee : SUCCESS in 24m 53s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c685df74a247420095984ab147163556 : SUCCESS in 5m 15s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/a9705ea37f9f48268f4dc6f93c11e3d6 : SUCCESS in 19m 11s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9e6b2d8ad91a4e129be8cdfa13f87d5c : SUCCESS in 26m 46s\n\nWarning:\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-encryption-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/zuul/zuul-jobs/playbooks/unittests/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/cleanup.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.\n  File .ssh/known_hosts.old found in build home directory during playbook opendev.org/opendev/base-jobs/playbooks/base/post-logs.yaml for job swift-tox-func-ec-py39-centos-9-stream-fips.  Add to preserve-home-paths if safe, or otherwise remove.","accounts_in_message":[],"_revision_number":3},{"id":"779bb0b0da0158a4b107186ee9f448d38fd97b28","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 15:41:16.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"dd933e50b163af9fe9c2e01d46d9d8be31e063f0","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 17:02:03.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/36ec0cef425f4348b6c280f54c4b3ae4\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/e3a5abc85a6942e59ccdf47776f51133 : SUCCESS in 8m 43s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/ce6cbcee14e3442d99581565d0e0fd93 : SUCCESS in 10m 00s\n- grenade https://zuul.opendev.org/t/openstack/build/dbe86956dd724c2fb772da076b8abc83 : SUCCESS in 51m 44s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/b9cd7e9cdb564441bef8937e81b169da : SUCCESS in 1h 02m 53s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/d9ecd458cb184c05bd9dc2ea385a1e2a : SUCCESS in 52m 33s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/61c8a0facbbf4109ba821c6a872252ae : SUCCESS in 1h 05m 29s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/76bc23f36d6a4208ac738e068a1763a0 : SUCCESS in 7m 13s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/96773a7dc4e442868a8096d25c75b108 : SUCCESS in 26m 48s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/674d4fa0eafd47c697526e806cc9d351 : SUCCESS in 21m 04s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/dbc5e9d6fc974ba694e837637f7301e7 : SUCCESS in 31m 16s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/f892d32dcd1d49f1ab7c47bdfe189eeb : SUCCESS in 18m 50s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/a8aa369932ef42b5a57321c75920b93d : SUCCESS in 12m 31s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/163d7172451c47e38b0d1a2202c05b3c : SUCCESS in 15m 15s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/4183498f5a9843c9a3cb68de229e213d : SUCCESS in 16m 59s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/e74eeb702f3b46a48bfc0f28f4b956ec : SUCCESS in 3m 58s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/0e75ef288b8b48928012c301a1f6eedd : SUCCESS in 7m 31s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/a16c8584d9574f29a9ab3926eddc1075 : SUCCESS in 1h 06m 12s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/07f78492242e4b39be7dbe0e5c242254 : SUCCESS in 51m 12s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/100d1e215bec40ab97f91791d7c7b9ac : SUCCESS in 49m 43s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/4a1eb90bc2054dd8bdffd7a04ffeba8a : SUCCESS in 26m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/eaaf2c28308a47afbe94f8c9f3a70e59 : SUCCESS in 5m 27s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/82c5aaef2ec148338d09801e518d03a4 : SUCCESS in 27m 25s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/d56293355b79452ca64fd2f26cc9b616 : SUCCESS in 52m 46s","accounts_in_message":[],"_revision_number":3},{"id":"1b7068f6321a182e8b4f9a94f65ecbde68942299","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 17:02:03.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"cee4e3ebc1b97966d863c4b44f5f21f51e91c63d","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-08-19 17:02:58.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/453339753cb54434a8476dc29764e649\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/44a130fe1ea64b59bc6db90791fac656 : SUCCESS in 44s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/90d0fe5f2a0943e783e0bc159d86a18a : SUCCESS in 43s (non-voting)","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"e32bc963df516d6465912e5d2d6924925549c1da","revisions":{"24dcdd7e82ddc70f4bc555a51a59d6baa6193d16":{"kind":"REWORK","_number":1,"created":"2026-08-18 14:16:43.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/56/1001356/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/56/1001356/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/56/1001356/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/56/1001356/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/56/1001356/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/56/1001356/1"}}},"commit":{"parents":[{"commit":"3064444bf433dfb7ade3d91130b58f7bceae9add","subject":"CHANGELOG for 2.38.1","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3064444bf433dfb7ade3d91130b58f7bceae9add"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-18 08:18:16.000000000","tz":60},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-18 14:09:28.000000000","tz":60},"subject":"s3api: fix mpu copy error with x-amz-copy-source-if-match","message":"s3api: fix mpu copy error with x-amz-copy-source-if-match\n\ns3api makes a HEAD response to check the source of a copy before\nmaking the PUT request to perform the copy. Previously, if the source\nwas a multipart upload object and the client copy request had an\nX-Amz-Copy-Source-If-Match, the HEAD request and therefore the client\nrequest would fail with a 412 Precondition Failed response. This was\nbecause the HEAD request did not include an X-Backend-Etag-Is-At header\nto direct the object-server to match against the\nX-Object-Sysmeta-S3api-Etag metadata.\n\nA similar error occurs when an X-Amz-Copy-Source-If-Match is sent with\nan UploadPartCopy request. The aws-cli has started to send this header\nsince version 2.32.2 (see bug report).\n\nThis patch adds the X-Backend-Etag-Is-At header to the copy source\ncheck HEAD response for both CopyObject and UploadPartCopy requests.\n\nCloses-Bug: #2147177\nChange-Id: I6ba1e53eafe1437af168c893c9ee8f708e0c294a\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nAssisted-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/24dcdd7e82ddc70f4bc555a51a59d6baa6193d16"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/24dcdd7e82ddc70f4bc555a51a59d6baa6193d16"}]},"branch":"refs/heads/master"},"936199aafba7efc19063df9d492557283a7689cc":{"kind":"REWORK","_number":2,"created":"2026-08-19 10:55:44.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/56/1001356/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/56/1001356/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/56/1001356/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/56/1001356/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/56/1001356/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/56/1001356/2"}}},"commit":{"parents":[{"commit":"3064444bf433dfb7ade3d91130b58f7bceae9add","subject":"CHANGELOG for 2.38.1","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3064444bf433dfb7ade3d91130b58f7bceae9add"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-18 08:18:16.000000000","tz":60},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-19 10:32:24.000000000","tz":60},"subject":"s3api: fix mpu copy error with x-amz-copy-source-if-match","message":"s3api: fix mpu copy error with x-amz-copy-source-if-match\n\ns3api makes a HEAD response to check the source of a copy before\nmaking the PUT request to perform the copy. Previously, if the source\nwas a multipart upload object and the client copy request had an\nX-Amz-Copy-Source-If-Match, the HEAD request and therefore the client\nrequest would fail with a 412 Precondition Failed response. This was\nbecause the HEAD request did not include an X-Backend-Etag-Is-At header\nto direct the object-server to match against the\nX-Object-Sysmeta-S3api-Etag metadata.\n\nA similar error occurs when an X-Amz-Copy-Source-If-Match is sent with\nan UploadPartCopy request. The aws-cli has started to send this header\nsince version 2.32.2 (see bug report).\n\nThis patch adds the X-Backend-Etag-Is-At header to the copy source\ncheck HEAD response for both CopyObject and UploadPartCopy\nrequests. The header value specifies the X-Object-Sysmeta-S3api-Etag\nmetadata key and, to cater for older MPUs, the legacy\nX-Object-Sysmeta-Swift3-Etag metadata key.\n\nCloses-Bug: #2147177\nChange-Id: I6ba1e53eafe1437af168c893c9ee8f708e0c294a\nCo-Authored-By: Nathaniel Martes \u003cnmartes@NVIDIA.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nAssisted-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/936199aafba7efc19063df9d492557283a7689cc"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/936199aafba7efc19063df9d492557283a7689cc"}]},"branch":"refs/heads/master"},"e32bc963df516d6465912e5d2d6924925549c1da":{"kind":"NO_CHANGE","_number":3,"created":"2026-08-19 14:30:55.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/56/1001356/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/56/1001356/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/56/1001356/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/56/1001356/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/56/1001356/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/56/1001356/3"}}},"commit":{"parents":[{"commit":"3064444bf433dfb7ade3d91130b58f7bceae9add","subject":"CHANGELOG for 2.38.1","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3064444bf433dfb7ade3d91130b58f7bceae9add"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-08-18 08:18:16.000000000","tz":60},"committer":{"name":"Christian Schwede","email":"cschwede@mailbox.org","date":"2026-08-19 14:30:53.000000000","tz":120},"subject":"s3api: fix mpu copy error with x-amz-copy-source-if-match","message":"s3api: fix mpu copy error with x-amz-copy-source-if-match\n\ns3api makes a HEAD response to check the source of a copy before\nmaking the PUT request to perform the copy. Previously, if the source\nwas a multipart upload object and the client copy request had an\nX-Amz-Copy-Source-If-Match, the HEAD request and therefore the client\nrequest would fail with a 412 Precondition Failed response. This was\nbecause the HEAD request did not include an X-Backend-Etag-Is-At header\nto direct the object-server to match against the\nX-Object-Sysmeta-S3api-Etag metadata.\n\nA similar error occurs when an X-Amz-Copy-Source-If-Match is sent with\nan UploadPartCopy request. The aws-cli has started to send this header\nsince version 2.32.2 (see bug report).\n\nThis patch adds the X-Backend-Etag-Is-At header to the copy source\ncheck HEAD response for both CopyObject and UploadPartCopy\nrequests. The header value specifies the X-Object-Sysmeta-S3api-Etag\nmetadata key and, to cater for older MPUs, the legacy\nX-Object-Sysmeta-Swift3-Etag metadata key.\n\nCloses-Bug: #2147177\nChange-Id: I6ba1e53eafe1437af168c893c9ee8f708e0c294a\nCo-Authored-By: Nathaniel Martes \u003cnmartes@NVIDIA.com\u003e\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\nAssisted-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e32bc963df516d6465912e5d2d6924925549c1da"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/e32bc963df516d6465912e5d2d6924925549c1da"}]},"branch":"refs/heads/master"}},"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":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}}]}],"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":{"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":""}}}]}
