)]}'
{"id":"openstack%2Fswift~955866","triplet_id":"openstack%2Fswift~master~I49ec4c5f6c83f36ce1d38f2f1687081c71488286","project":"openstack/swift","branch":"master","attention_set":{},"removed_from_attention_set":{"6968":{"account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"last_update":"2026-03-09 21:32:43.000000000","reason":"Removed by \u003cGERRIT_ACCOUNT_6968\u003e using the hovercard menu","reason_account":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"}}},"hashtags":[],"change_id":"I49ec4c5f6c83f36ce1d38f2f1687081c71488286","subject":"Fix recursion error in account_quota middleware","status":"MERGED","created":"2025-07-25 09:13:10.000000000","updated":"2026-03-09 21:32:43.000000000","submitted":"2025-07-25 16:23:14.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":12,"unresolved_comment_count":9,"has_review_started":true,"submission_id":"955866","meta_rev_id":"c29aeb1d764dd2e5e49d780b7a1ffb4899f300e5","_number":955866,"virtual_id_number":955866,"owner":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2025-07-25 16:23:13.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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"all":[{"value":2,"date":"2025-07-25 16:53:04.000000000","post_submit":true,"permitted_voting_range":{"min":2,"max":2},"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2025-07-25 15:21:30.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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2025-07-25 15:21:30.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":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2025-07-25 10:20:37.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":"2025-07-25 15:21:30.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"},{"updated":"2025-07-25 16:53:04.000000000","updated_by":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"reviewer":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"state":"REVIEWER"}],"messages":[{"id":"2c2611d1a6675318f7287489bc7b9fdee9088016","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"date":"2025-07-25 09:13:10.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"125bb4a949c37e361cb5d7c75878c6b6f40139aa","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-25 10:20:37.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/370c21898225428485589d3a7e819774\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/075bd7ca5b4b42e9a9fdbc700f0abcd6 : SUCCESS in 10m 58s\n- grenade https://zuul.opendev.org/t/openstack/build/e0484d6c53354bdb9557586418b4667a : SUCCESS in 1h 05m 33s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/be73a8a7e2304f13bbc593b18e522143 : SUCCESS in 59m 17s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/2c5c8a10f09b475597a1ac0e1b7eb801 : SUCCESS in 53m 46s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/29ff6ea66bae42259a5901bacbc4bcb0 : SUCCESS in 59m 11s\n- swift-tox-func-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/cea636edf5584616accf97146580e218 : SUCCESS in 21m 43s (non-voting)\n- swift-tox-func-encryption-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/0af191b01f08425e8494e09c7323420f : SUCCESS in 20m 03s (non-voting)\n- swift-tox-func-ec-py39-centos-9-stream-fips https://zuul.opendev.org/t/openstack/build/91ebe88c795143a78dd0142af5aebe55 : SUCCESS in 18m 53s (non-voting)\n- swift-build-image https://zuul.opendev.org/t/openstack/build/3e63f58775034c308b2345f72e711fc3 : SUCCESS in 5m 07s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/80a0dffde1034ce185d1fa931d723fc6 : SUCCESS in 20m 51s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/332dbf9905394e0bb484c518e2b43deb : SUCCESS in 19m 20s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/9543cc0ebba742d0b2e92ebfd1378b99 : SUCCESS in 26m 59s\n- swift-tox-py313 https://zuul.opendev.org/t/openstack/build/2a93647c66e4425a842dff3c398b816f : SUCCESS in 29m 00s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/27391b5dac0842e7b5afb2fbd69caa39 : SUCCESS in 15m 54s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/7f571f14f8634aa38e2ce0e2532ceefe : SUCCESS in 14m 17s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/3e6f02802d18443ba48d2db8c0d3a292 : SUCCESS in 14m 16s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/1b7c22cff15c4b4c9c147632d8e5df08 : SUCCESS in 6m 28s\n- swift-tox-func-ceph-s3tests-tempauth https://zuul.opendev.org/t/openstack/build/6c495c1d36934df6a18080ba30853ba3 : SUCCESS in 14m 02s (non-voting)\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/aa83457109064105a23f60d538361d0d : SUCCESS in 7m 50s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/f3477ca39277465da15bcf07164d8693 : SUCCESS in 53m 28s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/20852e44d83a4b60a9309ce109941ced : SUCCESS in 46m 29s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/057d8509c5664557897df6217e4759a6 : SUCCESS in 54m 00s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/feac0b64702a4ed4bc63fbc5964b6296 : SUCCESS in 20m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/90d657aa26f74f179576b48a32a036c9 : SUCCESS in 3m 38s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/d1074079635a40fb9862aa77346e0b91 : SUCCESS in 16m 52s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/d7588a72a2d949b586e9bc42e911674d : SUCCESS in 49m 06s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/4bebffb4472b466ea80799971e805f17 : SUCCESS in 45m 43s","accounts_in_message":[],"_revision_number":1},{"id":"56d4b09e3dcf8e698ad00053fe37aa3e0bcbd9dc","tag":"autogenerated:zuul:check-arm64","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-25 10:36:59.000000000","message":"Patch Set 1:\n\nBuild succeeded (ARM64 pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4b137907c37f4d52ad0b1b460520920a\n\n- swift-tox-py312-arm64 https://zuul.opendev.org/t/openstack/build/3b7cff0450a6452f8bd86ed92cd2ecdc : SUCCESS in 1h 16m 51s","accounts_in_message":[],"_revision_number":1},{"id":"ce2fd090ea2b8911ab563b6a5ce46683b63b4d30","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-07-25 15:21:30.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1\n\n(2 comments)","accounts_in_message":[],"_revision_number":1},{"id":"6e6b469a53e7ad273138593383b13ea8a987a7da","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-25 15:21:58.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"967942492473e6ea7d760a3d62ea1ae2c1e6f565","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-25 16:23:13.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9515068474e54db2bc93c4eb9dcfec87\n\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/2e213385942348009f9b7b476370f8a1 : SUCCESS in 10m 21s\n- grenade https://zuul.opendev.org/t/openstack/build/177f7dfa063c471ebcd544b8e46bf34f : SUCCESS in 53m 33s\n- grenade-skip-level-always https://zuul.opendev.org/t/openstack/build/0564320bb76148aaa3747d527f577d24 : SUCCESS in 57m 07s\n- tempest-integrated-object-storage https://zuul.opendev.org/t/openstack/build/acb5268fd3ec43efbab7bcf124a7704c : SUCCESS in 46m 27s\n- openstacksdk-functional-devstack https://zuul.opendev.org/t/openstack/build/a6dc7e7606384de5afe80eaadcf75217 : SUCCESS in 53m 53s\n- swift-upload-image https://zuul.opendev.org/t/openstack/build/d594cb0a1d1c4d91985b1397f15c87b6 : SUCCESS in 5m 07s (non-voting)\n- swift-tox-py37 https://zuul.opendev.org/t/openstack/build/c7768760990a43399a4020d0f4a5b932 : SUCCESS in 20m 29s\n- swift-tox-py39 https://zuul.opendev.org/t/openstack/build/4197c698069542568cd10913144bf502 : SUCCESS in 21m 02s\n- swift-tox-py312 https://zuul.opendev.org/t/openstack/build/93ca980b8e2b4bbfb6b3203b9fa64bd4 : SUCCESS in 24m 42s\n- swift-tox-func-py312 https://zuul.opendev.org/t/openstack/build/2c264fca7e264a85ab01cecdc878d943 : SUCCESS in 14m 42s\n- swift-tox-func-encryption-py312 https://zuul.opendev.org/t/openstack/build/200fad7683ae4b9a839ecf675154858b : SUCCESS in 14m 31s\n- swift-tox-func-ec-py312 https://zuul.opendev.org/t/openstack/build/ab8589912e8445b18da6041b15b735ff : SUCCESS in 15m 39s\n- swift-func-cors https://zuul.opendev.org/t/openstack/build/4337c5844f864584b0578a243336f8d2 : SUCCESS in 5m 41s\n- swift-tox-func-s3api-compat-tests-tempauth https://zuul.opendev.org/t/openstack/build/364afd4a8b3c489da457b4a0718f8a82 : SUCCESS in 7m 02s\n- swift-probetests-centos-9-stream https://zuul.opendev.org/t/openstack/build/df5533cd97394814aa2128de51b2f1e8 : SUCCESS in 56m 10s\n- swift-dsvm-functional https://zuul.opendev.org/t/openstack/build/cb55c17dd6244e5f9e70536d015c6fab : SUCCESS in 52m 05s\n- swift-dsvm-functional-ipv6 https://zuul.opendev.org/t/openstack/build/407392e4044249949795c4fc803179e5 : SUCCESS in 43m 01s\n- swift-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/97ae5a5a625045569f7e357a05e19678 : SUCCESS in 17m 53s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/021b6b570038410eb9176bd4daea20df : SUCCESS in 3m 45s\n- swift-multinode-rolling-upgrade https://zuul.opendev.org/t/openstack/build/cb01c6d303e44936a0835e4f0bf6317d : SUCCESS in 19m 47s\n- tempest-integrated-object-storage-ubuntu-jammy https://zuul.opendev.org/t/openstack/build/2d811521d42a4dd38fb7676deb291c22 : SUCCESS in 46m 14s\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/3b1d8dd61bd54469b6fe4ca0128584da : SUCCESS in 51m 56s","accounts_in_message":[],"_revision_number":1},{"id":"e790a4d95ecab6eacea5d45c07c7d50c70bf5bf3","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-25 16:23:14.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":1},{"id":"bccd5bc8486f56f825d9322f5d2bfa192d043eb2","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2025-07-25 16:24:08.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/726d0836a30240cf9254c8f87e8d5bfc\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/0b353a1013a54056be68629eb34af227 : SUCCESS in 44s\n- swift-promote-image https://zuul.opendev.org/t/openstack/build/d1a18e61b7b643cc9db263b4651201d4 : SUCCESS in 39s (non-voting)","accounts_in_message":[],"_revision_number":1},{"id":"3bb5cd4e51ba10ae57fb9c57fee657f69a351352","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-07-25 16:53:04.000000000","message":"Patch Set 1: Code-Review+2\n\n(8 comments)","accounts_in_message":[],"_revision_number":1},{"id":"e4098e3f4e62a30884d365759249dd7625121612","author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"date":"2025-07-25 16:54:46.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1},{"id":"8301048ec0dfaec362a3d55dd1687bb2277842a6","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2025-07-25 17:54:13.000000000","message":"Patch Set 1:\n\n(1 comment)","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"06a6329793decc58cbe0b2e7c4fdf2e46b20e758","revisions":{"06a6329793decc58cbe0b2e7c4fdf2e46b20e758":{"kind":"REWORK","_number":1,"created":"2025-07-25 09:13:10.000000000","uploader":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"ref":"refs/changes/66/955866/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/66/955866/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/66/955866/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/66/955866/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/66/955866/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/66/955866/1"}}},"commit":{"parents":[{"commit":"8af485775acc9ad97a6cbdca64279aac9f647f8c","subject":"Merge \"s3api: Add support for crc64nvme checksum calculation\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/8af485775acc9ad97a6cbdca64279aac9f647f8c"}]}],"author":{"name":"Christian Schwede","email":"cschwede@redhat.com","date":"2025-07-25 09:10:28.000000000","tz":0},"committer":{"name":"Christian Schwede","email":"cschwede@redhat.com","date":"2025-07-25 09:12:41.000000000","tz":0},"subject":"Fix recursion error in account_quota middleware","message":"Fix recursion error in account_quota middleware\n\nThere is an infinite loop if multiple quota limits are set and exceeded,\neventually resulting in a 500 response due to a RecursionError (\"maximum\nrecursion depth exceeded\").\n\nThe issue is the delayed rejection, required to support container_acls.\nIf any quota is exceeded the middleware needs to return directly,\nwithout proceeding to check other quota settings.\n\nThe fix is basically to add a \"return self.app\". However, there is quite\nsome redundant code, thus moving this into its own method.\n\nAnother test with multiple exceeded quotas has been added, which is\nfailing without the bugfix.\n\nCloses-Bug: #2118758\nChange-Id: I49ec4c5f6c83f36ce1d38f2f1687081c71488286\nSigned-off-by: Christian Schwede \u003ccschwede@redhat.com\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/06a6329793decc58cbe0b2e7c4fdf2e46b20e758"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/06a6329793decc58cbe0b2e7c4fdf2e46b20e758"}]},"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":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
