)]}'
{"id":"openstack%2Fswift~983192","triplet_id":"openstack%2Fswift~master~Iefb556b36cca09e15b87c176cdd8434a7bc2078d","project":"openstack/swift","branch":"master","topic":"p-versioning-put-null-version-id","attention_set":{},"removed_from_attention_set":{"7847":{"account":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"last_update":"2026-04-24 16:48:08.000000000","reason":"Change was submitted"},"15343":{"account":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"last_update":"2026-04-24 15:38:41.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":"Iefb556b36cca09e15b87c176cdd8434a7bc2078d","subject":"versioning: fix 500 error for PUT with version-id\u003dnull","status":"MERGED","created":"2026-04-02 12:17:10.000000000","updated":"2026-04-24 16:49:35.000000000","submitted":"2026-04-24 16:48:08.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":5,"unresolved_comment_count":1,"has_review_started":true,"submission_id":"983192-p-versioning-put-null-version-id","meta_rev_id":"b9f5b5a82c3c4604a441de536773f1bb17c68906","_number":983192,"virtual_id_number":983192,"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":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-04-24 16:48:08.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":"2026-04-22 16:56:02.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":"2026-04-24 15:38:41.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":[],"reviewers":{"REVIEWER":[{"_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":"2026-04-02 12:46:19.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-04-02 13:29:55.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-04-22 16:46:54.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"}],"messages":[{"id":"a03ac394dcd87cc152bf29da37a9c280896b4723","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-02 12:17:10.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"243a0c810a997d8d2239a041ae2c239d8333e427","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-02 12:19:31.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"4ef44b16fc120be14e33b33523e4c64c12b3ba64","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-02 12:46:19.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cf06a1cb2ec74c91ab4c7dee4bb5e6e6\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/4c51b13a94ed4348bc8e8cfe6510168a : SUCCESS in 27m 10s","accounts_in_message":[],"_revision_number":1},{"id":"56d2d86ed775d83dede1f05d94dfbaaba5c598a2","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-02 13:29:55.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/3bc6ef1258964e95871fbdf0f0135e31\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/b1a9c8a13a624a9c931758813dcb6190 : SUCCESS in 6m 16s\n- grenade https://zuul.opendev.org/t/openstack/build/58478649d28b4a669837e13fd8956851 : SUCCESS in 57m 27s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/81c05e92001f498aaf669ba36ce86d5f : SUCCESS in 1h 00m 12s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/3a80b7f0198d432f9d0a59c4ae2ce1f1 : SUCCESS in 32m 27s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d3178040cbdc4b91af923e84715308f0 : SUCCESS in 58m 26s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/50b60a78eea242beb589e6ab8afed67a : SUCCESS in 21m 02s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/834a9301aa504362a0686633e9962987 : SUCCESS in 22m 46s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/c3f927e9ac1647028095f88d330e7f8c : SUCCESS in 11m 44s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/0bb0e2d26fe34b4091603512af58c965 : SUCCESS in 4m 17s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/39ba3ddf569c46d58ccb3cc039f24b07 : SUCCESS in 25m 09s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/bf52757ec44f40788b597990116cd172 : SUCCESS in 21m 55s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/2f006e9645c9423f818cf48787f68ccb : SUCCESS in 37m 01s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/83ac5e6e12e0433599144e8de05db101 : SUCCESS in 21m 14s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/01dae9309ae14faa88d02450face5ce6 : SUCCESS in 14m 54s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/9e7660ebffec4aa894b343b12d6709c4 : SUCCESS in 8m 57s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/16497919bafc4e07bf139929c0058877 : SUCCESS in 15m 00s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/652b7588af874b01a9151db2590a7cce : SUCCESS in 6m 13s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/78007856788d4f31901dff188cd378ff : SUCCESS in 9m 01s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/2570e3617ec9443bbab49e5fcdc988f7 : SUCCESS in 11m 09s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/4da08da1bdf4424baef0b083548b7e66 : SUCCESS in 54m 59s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/bb632ae6471b442486d8edcaae29b454 : SUCCESS in 22m 29s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/749efde94aa041999a3cf54a7bd9a83c : SUCCESS in 47m 52s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/54ebe412740f4a7eb426737b7aa408b5 : SUCCESS in 29m 18s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c446d504169549fd8984124d3655fd90 : SUCCESS in 3m 53s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/8b281aede67046d8b365d0566647db5c : SUCCESS in 9m 23s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/2467266f86da4aa18352d9425e36aa32 : SUCCESS in 1h 07m 03s","accounts_in_message":[],"_revision_number":1},{"id":"a67e623e9db9f4286bc6caeacd8bee6b591a2757","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-13 10:14:12.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased. Commit message was updated.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":2},{"id":"3c401c1da3d2514fe381a1a3d96c10bab21d8d5b","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 11:51:31.000000000","message":"Patch Set 2:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/77b9afdcb1ec4af4b01d2202b6a0bffe\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/18e0a2fb644242a3ad7d95ada94afc96 : SUCCESS in 34m 45s","accounts_in_message":[],"_revision_number":2},{"id":"553276de3894469cc227de5e2e54d334f5846df8","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-13 12:09:36.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/bf59d45f235f47d39f60913f595c3d40\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/64778b7e4fb345b0890a3b99ea03e02a : SUCCESS in 11m 16s\n- grenade https://zuul.opendev.org/t/openstack/build/4dc06aa64b5c445c82f0ec2f4a4d4465 : SUCCESS in 50m 20s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/043124841aa249229f8f14fb9e8a8b22 : SUCCESS in 1h 06m 19s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/b5067f163b5647818a2294ff84f70ce0 : SUCCESS in 1h 02m 58s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/d03f0435f3334774a345332646894658 : SUCCESS in 1h 02m 12s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/8db1b178bcd04f0787b7748f7c10d579 : SUCCESS in 17m 19s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/56a8a0d2d0ba47dda3abadc6666e28f2 : SUCCESS in 23m 12s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/74ce0810436449a5a79d863f68f003ae : SUCCESS in 22m 15s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/df26e4363318465984838a9f3fb1352b : SUCCESS in 7m 10s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c6c384e070f9445e9258666d1d66306a : SUCCESS in 18m 47s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/e5c7de31debd41f9a2d770f39c1a9ee2 : SUCCESS in 14m 02s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/5094efe6032c409bafaffd544d6d4aed : SUCCESS in 29m 09s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/c4272d4fd53642a5b2a25902a19580ce : SUCCESS in 21m 13s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/28e4a707db8a46e7a3b7fafa64eefe35 : SUCCESS in 15m 34s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/a8b721c2c80d4c1abadc84e867baeea3 : SUCCESS in 14m 52s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/f1e5a2609ba647a8a35f8b3f653cd3b7 : SUCCESS in 16m 13s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/d7946209ffdb4a4aa621005afdaeaf09 : SUCCESS in 6m 45s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/404756173b054b6da649c28b83e3eccd : SUCCESS in 18m 19s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/faa364e32e1044ad8c8f697b0286cb53 : SUCCESS in 8m 31s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/34109ca15d234d34a86f0f8296d1ad35 : SUCCESS in 52m 48s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/a44578d9da574b5982036d4ad195cdcb : SUCCESS in 58m 16s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/80881793f1e4453ba2b83bf0370fb558 : SUCCESS in 49m 12s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/2e650d1d31ab4c678ac3a60cab9104a4 : SUCCESS in 27m 33s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/37c0a932a7f94988a163bbbe4bcba5be : SUCCESS in 4m 50s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/10c9514a042d42668387d5a55307b151 : SUCCESS in 17m 48s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/d8cd9d23f8084cde832cebeaedfba422 : SUCCESS in 1h 06m 49s","accounts_in_message":[],"_revision_number":2},{"id":"093a643779233a8a65e56e9a412843431e740093","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-22 16:25:03.000000000","message":"Patch Set 3: Commit message was updated.\n\nOutdated Votes:\n* Verified+1 (copy condition: \"NEVER\")\n","accounts_in_message":[],"_revision_number":3},{"id":"09bbbfb1193087db4dd82e594efbfc47de4c7a5d","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-04-22 16:46:54.000000000","message":"Patch Set 2: Code-Review+2\n\n(2 comments)","accounts_in_message":[],"_revision_number":2},{"id":"bfe2755e68a8c3509db54d39fc74c0069edb1d97","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-04-22 16:56:02.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"a3f37ed756f3935496e0373a4d8407fcc0c62128","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-22 17:46:00.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/994589a86d1648568b3a47570da9bcc9\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ae2f3b4ade36421dbd0d21cae6fee919 : SUCCESS in 11m 02s\n- grenade https://zuul.opendev.org/t/openstack/build/16c5fb119877409bb3e4a773dc5dec3e : SUCCESS in 1h 04m 57s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/2fd160cf92434beea85f9686763534cf : SUCCESS in 1h 13m 42s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/03575e023935431292588ae1dead836f : SUCCESS in 1h 01m 09s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/07c53e8faef44402b7e7efbf40ed38b2 : SUCCESS in 1h 03m 47s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/5ed2738f1b5f4150806bf22c62d6e13c : SUCCESS in 19m 39s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/25e3555c90534a84a564c133405b4622 : SUCCESS in 12m 23s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/e67353a5cfda447380e9959b9534fb04 : SUCCESS in 20m 02s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/4ac7f9c2189644c4933cf221d18ca539 : SUCCESS in 6m 40s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/1610aa38a3f4484f950d1edc53c09476 : SUCCESS in 10m 10s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/c06cbe8855564097983c564389fcddbc : SUCCESS in 21m 18s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/3de5295b83e4406084e2caab5cdc27f1 : SUCCESS in 29m 36s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/1502252b8f8147f982dc9ad9d518b3af : SUCCESS in 22m 35s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/ac01d0a8889d481aa7e7101303d5c773 : SUCCESS in 14m 52s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/322634120175423bb8860ce54a517554 : SUCCESS in 15m 27s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/dfacccfc31144ba7a862d11f3141a910 : SUCCESS in 16m 55s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/1241b5b716114176a308dd1ff3d5b5e0 : SUCCESS in 6m 50s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/a8f20ffcf041401ea00fafa5174ef249 : SUCCESS in 18m 34s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/77ee2753d72b4328b77126dcdb9210e8 : SUCCESS in 8m 53s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/fa420d25be20415da85b6199af7a6a24 : SUCCESS in 58m 58s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/dbb66ac430374ba4ad0d6ec1813344f9 : SUCCESS in 58m 16s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/f1e6f45996b84620a5f2fb3122b8d487 : SUCCESS in 50m 30s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/7ea949f545604e719cb1b4b839110792 : SUCCESS in 29m 14s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/0589fdce48ac4791ad6b176bb3d57ae2 : SUCCESS in 4m 23s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/7d84e963df5049e9807016d953374b9b : SUCCESS in 19m 32s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/dfa4e42d4bfc448bbee180784c8a7522 : SUCCESS in 33m 22s","accounts_in_message":[],"_revision_number":3},{"id":"88e1c77974fca539b80669ff280ad6c5c8e9e6b3","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-22 23:02:57.000000000","message":"Patch Set 3:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/c61aa867330b43caa762d654691d1852\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/a22c7bf8f7f746c391dacf85a58a8631 : SUCCESS in 38m 09s","accounts_in_message":[],"_revision_number":3},{"id":"feafab0c939d0553e4810b93ac1cbf7b5d7730c7","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2026-04-24 11:40:50.000000000","message":"Patch Set 3:\n\n(2 comments)","accounts_in_message":[],"_revision_number":3},{"id":"89cb810b28b1d655caf9201240dc48918aecd8af","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2026-04-24 15:38:41.000000000","message":"Patch Set 3: Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"15a4687fd6b4aefc3d6285aea64d2990d217f383","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-24 15:39:26.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"421b888e185b472ec9c26b87ede9557e891d0576","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-24 16:48:08.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/00cbdbe4ff3f453e9a05e1578153c4a2\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ca1c8c51750447bdbc157de17a447a9e : SUCCESS in 5m 13s\n- grenade https://zuul.opendev.org/t/openstack/build/13e93172e9284c639ca8e314fc242094 : SUCCESS in 32m 59s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/649556d231bf4235abdbdcff65f88823 : SUCCESS in 33m 46s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/88de19c242444d9989624a18fe7f1b88 : SUCCESS in 1h 03m 58s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/3c8950e72e5f4dca984b0f52e6ebf74d : SUCCESS in 1h 03m 14s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/3472f4d1f4024d2ea4f086f124af477c : SUCCESS in 7m 34s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/2b3ef92febf2421cbf64af5c4f1327ef : SUCCESS in 21m 23s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/f9e4dd60697d483cb31eebbc84c0b182 : SUCCESS in 16m 58s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/48ec3fc5af1e4f27ae1468b6c56a149c : SUCCESS in 34m 28s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/80f5b37df6da4cb7bd591a22f927a15c : SUCCESS in 27m 00s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/a21c2f6250be4cd7aa7dc0b8aab28d49 : SUCCESS in 15m 14s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/664f99ed9e5745c198675c6d68cab373 : SUCCESS in 20m 55s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/d2470f8941f44e05929c37d6db936b77 : SUCCESS in 15m 23s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/75e50a21dbac4969b1699d8fb54cb2e6 : SUCCESS in 9m 15s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/6e2d4d36fb244788aa27e0c8db6092e9 : SUCCESS in 5m 17s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/83e8cf655c7c467d9c50be64b56c444d : SUCCESS in 1h 00m 12s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/8cad9c87910c439a8be27216d0f723d8 : SUCCESS in 49m 25s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/2a6954a20130421f94e64354e5984a3b : SUCCESS in 55m 45s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/bb42f7591d8b42d780fd0a982c28e8a7 : SUCCESS in 29m 28s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/1a4b3cea576746198a31340202533781 : SUCCESS in 4m 50s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/df383cf962aa4ec1958ada813cc03d38 : SUCCESS in 9m 41s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/e649e6d866c342d2bc02d240eb69094c : SUCCESS in 31m 31s","accounts_in_message":[],"_revision_number":3},{"id":"27be0b25ea6b2dc59ce543691c24b6d4b6226888","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-24 16:48:08.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"b9f5b5a82c3c4604a441de536773f1bb17c68906","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-04-24 16:49:35.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/64ec4d4ea41c4e399436f1b982f10b20\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/f83cd194b89441e4b1b93bcbfaf8e9f1 : SUCCESS in 44s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/5016778c74f643c385bd2b9030b956c9 : SUCCESS in 42s (non-voting)","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"9efebcc6a16f200328b486335efdbd442206dadf","revisions":{"197be611e66ce36745ca953e5be52e3ae5c91527":{"kind":"REWORK","_number":1,"created":"2026-04-02 12:17:10.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/92/983192/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/92/983192/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/92/983192/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/92/983192/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/92/983192/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/92/983192/1"}}},"commit":{"parents":[{"commit":"694d25bb1a87f9426ac7ad1f3817c51f5bf13a34","subject":"Improved offset support in Timestamp.__invert__","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/694d25bb1a87f9426ac7ad1f3817c51f5bf13a34"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-02 11:52:46.000000000","tz":60},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-02 11:52:46.000000000","tz":60},"subject":"versioning: fix 500 error for PUT with version-id-null","message":"versioning: fix 500 error for PUT with version-id-null\n\nChange-Id: Iefb556b36cca09e15b87c176cdd8434a7bc2078d\nCloses-Bug: #2147109\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/197be611e66ce36745ca953e5be52e3ae5c91527"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/197be611e66ce36745ca953e5be52e3ae5c91527"}]},"branch":"refs/heads/master"},"6e27b49c4a18b6bea1e356fb5255b46c293d0696":{"kind":"TRIVIAL_REBASE_WITH_MESSAGE_UPDATE","_number":2,"created":"2026-04-13 10:14:12.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/92/983192/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/92/983192/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/92/983192/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/92/983192/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/92/983192/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/92/983192/2"}}},"commit":{"parents":[{"commit":"76fa89cc2823212bb1de195943648fec9edebcc2","subject":"Merge \"versioning: fix listing gap when version_marker\u003dnull\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/76fa89cc2823212bb1de195943648fec9edebcc2"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-02 11:52:46.000000000","tz":60},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-13 10:06:54.000000000","tz":60},"subject":"versioning: fix 500 error for PUT with version-id-null","message":"versioning: fix 500 error for PUT with version-id-null\n\nThe intended use case for a PUT?version_id\u003d is to create a symlink\nfrom the user container to a version in the versions container,\ne.g. when s3api restores a previous version after deleting the\nlatest. In that context, the version_id is never expected to be\n\u0027null\u0027, but if a client does use \u0027null\u0027 then the object_versioning\nmiddleware would previously raise a 500 response.\n\nIf version_id is \u0027null\u0027 then we cannot create a null version, nor a\nsymlink to it; a null version is by definition an existing\nnon-versioned object in the user namsepace.  This patch therefore\nmodifies object_versioning middleware to treat an object\nPUT?version_id\u003dnull as a 400 Bad Request.\n\nChange-Id: Iefb556b36cca09e15b87c176cdd8434a7bc2078d\nCloses-Bug: #2147109\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6e27b49c4a18b6bea1e356fb5255b46c293d0696"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/6e27b49c4a18b6bea1e356fb5255b46c293d0696"}]},"branch":"refs/heads/master"},"9efebcc6a16f200328b486335efdbd442206dadf":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2026-04-22 16:25:03.000000000","uploader":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"ref":"refs/changes/92/983192/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/92/983192/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/92/983192/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/92/983192/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/92/983192/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/92/983192/3"}}},"commit":{"parents":[{"commit":"76fa89cc2823212bb1de195943648fec9edebcc2","subject":"Merge \"versioning: fix listing gap when version_marker\u003dnull\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/76fa89cc2823212bb1de195943648fec9edebcc2"}]}],"author":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-02 11:52:46.000000000","tz":60},"committer":{"name":"Alistair Coles","email":"alistairncoles@gmail.com","date":"2026-04-22 16:25:03.000000000","tz":0},"subject":"versioning: fix 500 error for PUT with version-id\u003dnull","message":"versioning: fix 500 error for PUT with version-id\u003dnull\n\nThe intended use case for a PUT?version_id\u003d is to create a symlink\nfrom the user container to a version in the versions container,\ne.g. when s3api restores a previous version after deleting the\nlatest. In that context, the version_id is never expected to be\n\u0027null\u0027, but if a client does use \u0027null\u0027 then the object_versioning\nmiddleware would previously raise a 500 response.\n\nIf version_id is \u0027null\u0027 then we cannot create a null version, nor a\nsymlink to it; a null version is by definition an existing\nnon-versioned object in the user namsepace.  This patch therefore\nmodifies object_versioning middleware to treat an object\nPUT?version_id\u003dnull as a 400 Bad Request.\n\nChange-Id: Iefb556b36cca09e15b87c176cdd8434a7bc2078d\nCloses-Bug: #2147109\nSigned-off-by: Alistair Coles \u003calistairncoles@gmail.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9efebcc6a16f200328b486335efdbd442206dadf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9efebcc6a16f200328b486335efdbd442206dadf"}]},"branch":"refs/heads/master","description":"Edit commit message"}},"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":{"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":""}}}]}
