)]}'
{"id":"openstack%2Fswift~989599","triplet_id":"openstack%2Fswift~master~I0f1b39695fbcd7ce4c9a38e23e4d158bb409c868","project":"openstack/swift","branch":"master","hashtags":[],"change_id":"I0f1b39695fbcd7ce4c9a38e23e4d158bb409c868","subject":"Validate container account update hosts before mutation","status":"NEW","created":"2026-05-21 18:02:57.000000000","updated":"2026-05-21 23:19:58.000000000","submit_type":"MERGE_IF_NECESSARY","mergeable":true,"submittable":false,"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"c77ffe5b6131c72babe5ac451dacf766f4a1bc05","_number":989599,"virtual_id_number":989599,"owner":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:check","value":1,"date":"2026-05-21 19:23:29.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","value":1,"default_value":0,"optional":true},"Code-Review":{"all":[{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-05-21 19:23:29.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":"67ffda299d6ad9a3d0400d2b28d6a669a6ee9ad5","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2026-05-21 18:02:57.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"a2b8a685aa76593fda1e9685ba3167b977552b5b","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 19:23:29.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/cc5365ef72bc4d208d7a582b4dee99fb\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9b19ffef45654f98a00ca3a8acc10ac6 : SUCCESS in 10m 52s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/48ec6dcb6b5c4f3a98b32ba76544cd44 : SUCCESS in 6m 44s\n- grenade https://zuul.opendev.org/t/openstack/build/5505221c1ee140b092736cbcf88143a0 : SUCCESS in 1h 06m 52s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/05506d37a2bb40959d6d68bb12ca5093 : SUCCESS in 51m 06s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/737829c8d2374078a75f729116c89afe : SUCCESS in 37m 31s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/5558570713d946f38ca79c132e3d55d4 : SUCCESS in 1h 12m 24s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/dd4f9f82462f44a9ba8daf68d41ffbb1 : SUCCESS in 19m 54s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/6864e0edb1ff4db2b2a7395f51f1eab9 : SUCCESS in 21m 22s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/fa6efbbcadf84749a6aca37ea6ca18b9 : SUCCESS in 21m 02s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/f9ddbd16ae904e489f76f56bf9ccc529 : SUCCESS in 8m 45s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/fb87af788cc44750bbd4226946a74f04 : SUCCESS in 21m 44s\n- swift-tox-py310 https://zuul.opendev.org/t/openstack/build/c3350f8c679f4b73a3febeecd19b6be8 : SUCCESS in 10m 07s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/5403e31540444e678a5708276748a3a6 : SUCCESS in 24m 28s\n- swift-tox-py314 https://zuul.opendev.org/t/openstack/build/7556708d3b2148c18ce659a2113b79ea : SUCCESS in 20m 35s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/1097b24543ab4c528bdb60b7efb159f9 : SUCCESS in 8m 39s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/1ddb3b6efcd34fa29f31a1c1a6ca1c6a : SUCCESS in 17m 40s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/c8d960d596b24386873ab9bdd72e4580 : SUCCESS in 15m 46s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/7b8ca4b549a54417bc619ee22389cb62 : SUCCESS in 4m 35s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/941a571f761640b29e8e5161af92a9cd : SUCCESS in 11m 08s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/7ee0d7653ab442efa75a69eb82b11d2f : SUCCESS in 8m 12s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/0cdf6b3544524b1b84a58561ea063a90 : SUCCESS in 1h 06m 43s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/e34d45935f444adbaf4a89289df3504f : SUCCESS in 23m 50s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/315cc26790a54f518fea751964e0b4fc : SUCCESS in 36m 23s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/605efc4a9f0648f289225eb936e7ab2c : SUCCESS in 22m 24s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/ceed1763259d4bed956872b0f0f9d2fb : SUCCESS in 4m 23s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/aa6608f5ec864d689a9bd633d9d69ae7 : SUCCESS in 10m 54s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/a7fbf022124a49d08e382d7fc19fc8a9 : SUCCESS in 1h 01m 34s","accounts_in_message":[],"_revision_number":1},{"id":"c77ffe5b6131c72babe5ac451dacf766f4a1bc05","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-05-21 23:19:58.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/1e356964191a4b2bbe032e79cc12002c\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/528b97143db74ea596b27562e9288275 : SUCCESS in 1h 03m 48s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"0a58780c381fa878009be0085e15fedc9360c64a","revisions":{"0a58780c381fa878009be0085e15fedc9360c64a":{"kind":"REWORK","_number":1,"created":"2026-05-21 18:02:57.000000000","uploader":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"ref":"refs/changes/99/989599/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/99/989599/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/99/989599/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/99/989599/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/99/989599/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/99/989599/1"}}},"commit":{"parents":[{"commit":"ca8749f344168ad1c4e07fdfd24e68ca04c57eae","subject":"test_sharder.py: pass timestamp strings to put_object","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/ca8749f344168ad1c4e07fdfd24e68ca04c57eae"}]}],"author":{"name":"John Dickinson","email":"me@not.mn","date":"2026-05-21 17:49:15.000000000","tz":-420},"committer":{"name":"John Dickinson","email":"me@not.mn","date":"2026-05-21 18:02:55.000000000","tz":-420},"subject":"Validate container account update hosts before mutation","message":"Validate container account update hosts before mutation\n\nContainer account_update() checks that X-Account-Host and\nX-Account-Device contain the same number of entries, but it does not parse\neach host:port pair before PUT_container updates the container DB. A\nmalformed account host can therefore create or mutate container state\nbefore the account update raises and returns 500.\n\nValidate account update host headers before container PUT and DELETE paths\nmutate local state. Reject malformed host entries with 400 responses so\nbad account-update requests do not leave behind unintended DB changes.\n\nCloses-Bug: #2153522\nAssisted-By: Codex (GPT 5.5)\nChange-Id: I0f1b39695fbcd7ce4c9a38e23e4d158bb409c868\nSigned-off-by: John Dickinson \u003cme@not.mn\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0a58780c381fa878009be0085e15fedc9360c64a"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/0a58780c381fa878009be0085e15fedc9360c64a"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"OK","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY"},{"label":"Workflow","status":"MAY"}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Verified\u003dMAX","label:Verified\u003dMIN"],"atom_explanations":{"label:Verified\u003dMAX":"","label:Verified\u003dMIN":""}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Code-Review\u003dMAX","label:Code-Review\u003dMIN"],"atom_explanations":{"label:Code-Review\u003dMAX":"","label:Code-Review\u003dMIN":""}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"UNSATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":false,"status":"FAIL","passing_atoms":[],"failing_atoms":["label:Workflow\u003dMAX","label:Workflow\u003dMIN"],"atom_explanations":{"label:Workflow\u003dMAX":"","label:Workflow\u003dMIN":""}}}]}
