)]}'
{"id":"openstack%2Fkeystone~783735","triplet_id":"openstack%2Fkeystone~stable%2Fwallaby~I75590c20e90170ed862f46f0de7d61c7810b5c90","project":"openstack/keystone","branch":"stable/wallaby","topic":"bug/1885753","hashtags":[],"change_id":"I75590c20e90170ed862f46f0de7d61c7810b5c90","subject":"Retry update_user when sqlalchemy raises StaleDataErrors","status":"MERGED","created":"2021-03-29 19:20:54.000000000","updated":"2021-04-01 04:31:22.000000000","submitted":"2021-04-01 04:29:55.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"783735-bug/1885753","meta_rev_id":"be8862108ab404f2e495e6344b23e6672983d28e","_number":783735,"virtual_id_number":783735,"owner":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},{"value":0,"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2021-04-01 04:29:54.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":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"all":[{"value":2,"date":"2021-03-29 19:34:15.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":1,"date":"2021-03-31 13:37:48.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},{"value":2,"date":"2021-04-01 04:03:16.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},{"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":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"all":[{"value":0,"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"value":0,"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},{"value":1,"date":"2021-04-01 04:03:16.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},{"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":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"}],"reviewers":{"REVIEWER":[{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2021-03-29 19:32:03.000000000","updated_by":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"reviewer":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"state":"REVIEWER"},{"updated":"2021-03-29 19:32:03.000000000","updated_by":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"reviewer":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"state":"REVIEWER"},{"updated":"2021-03-29 19:35:26.000000000","updated_by":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"reviewer":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"state":"REVIEWER"},{"updated":"2021-03-29 19:47:24.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":"f542a00151226fba538358fbf56b646eac02c400","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2021-03-29 19:20:54.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"245e2c46e54dee6de62649649777348bd0362ccf","author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"date":"2021-03-29 19:34:15.000000000","message":"Patch Set 1: Code-Review+2\n\nLooks good to me.","accounts_in_message":[],"_revision_number":1},{"id":"f88d9fbc69d345a7bc52f4ca4dbc82abdcfd1ed1","author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"date":"2021-03-29 19:34:35.000000000","message":"Patch Set 1:\n\nDoes need to merge to master yet though.","accounts_in_message":[],"_revision_number":1},{"id":"d972b0c0ab302c95eb0ee861aaefe9c5e764b22d","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-03-29 19:47:24.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/d9ef4ea9bf1d48e1bb57b99efb7e8872 : SUCCESS in 17m 03s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/7e91d869ab55439c85f4cd975bcd3186 : SUCCESS in 8m 46s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/184c411d830d4d3ab2f8d192e0dde243 : SUCCESS in 21m 44s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/11e6aabc37de478d86f29d6d4761645d : SUCCESS in 20m 33s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/91a790801e2b4c6eb340272aa95f32cb : SUCCESS in 17m 40s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/f59a56be41614382b0859cb353d9bd29 : SUCCESS in 9m 07s","accounts_in_message":[],"_revision_number":1},{"id":"0bde775902ef7d888917e7dc8f7df1fe17664e7d","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2021-03-31 12:09:14.000000000","message":"Patch Set 1:\n\nThe patch in master merged, this is ready for some reviews.","accounts_in_message":[],"_revision_number":1},{"id":"928d4485e1d9ca9bdc1d44c05ea7ec2fa5894df4","author":{"_account_id":16465,"name":"Kristi Nikolla","email":"knikolla@bu.edu","username":"knikolla"},"date":"2021-03-31 13:37:48.000000000","message":"Patch Set 1: Code-Review+1","accounts_in_message":[],"_revision_number":1},{"id":"f829c774902cd7321f7b702e0da29750ad41ceb9","author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"date":"2021-04-01 04:03:16.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"23030f6538101c41b8e4f14dd90eb06ae6efc9f3","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-04-01 04:03:33.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"3e374f2e4167395b77f612eb6d6534e95fd00847","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-04-01 04:29:54.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/31438bc365484730ad15d3db72ca4162 : SUCCESS in 7m 12s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/de898e2fddf3414aad5a7f693b2a2dcb : SUCCESS in 21m 45s\n- openstack-tox-py38 https://zuul.opendev.org/t/openstack/build/b2b9b481365741dc829087627ea5ec27 : SUCCESS in 19m 02s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/3c7b9ddf9b0b43c9bae47be87031a457 : SUCCESS in 13m 54s\n- build-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/4d9acddf149c457699dd8ec93eaebac8 : SUCCESS in 7m 26s","accounts_in_message":[],"_revision_number":1},{"id":"7471cdf0bbba5dcced1d47217b2336a9a4d3196f","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-04-01 04:29:55.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":1},{"id":"be8862108ab404f2e495e6344b23e6672983d28e","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2021-04-01 04:31:22.000000000","message":"Patch Set 1:\n\nBuild succeeded (promote pipeline).\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/ae383d44488f438597529a8a2e7817a3 : SUCCESS in 1m 05s\n- promote-openstack-releasenotes https://zuul.opendev.org/t/openstack/build/d820b56ecab6499ca8e7a6a914e5b778 : SUCCESS in 52s","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"f47e635b8041542faa05e64606e66d2fbbc5f284","revisions":{"f47e635b8041542faa05e64606e66d2fbbc5f284":{"kind":"REWORK","_number":1,"created":"2021-03-29 19:20:54.000000000","uploader":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"ref":"refs/changes/35/783735/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/keystone","ref":"refs/changes/35/783735/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/keystone refs/changes/35/783735/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/keystone refs/changes/35/783735/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/keystone refs/changes/35/783735/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/keystone refs/changes/35/783735/1"}}},"commit":{"parents":[{"commit":"ef711cd0eb5fb6fb143783ad4096e3f1dbd9da99","subject":"Merge \"Add job for keystone functional protection tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/ef711cd0eb5fb6fb143783ad4096e3f1dbd9da99"}]}],"author":{"name":"Lance Bragstad","email":"lbragstad@gmail.com","date":"2020-06-30 16:50:41.000000000","tz":-300},"committer":{"name":"Lance Bragstad","email":"lbragstad@gmail.com","date":"2021-03-29 19:19:09.000000000","tz":0},"subject":"Retry update_user when sqlalchemy raises StaleDataErrors","message":"Retry update_user when sqlalchemy raises StaleDataErrors\n\nKeystone\u0027s update_user() method in the SQL driver processes a lot of\ninformation about how to update users. This includes evaluating password\nlogic and authentication attempts for PSI-DSS. This logic is evaluated\nafter keystone pulls the user record from SQL and before it exits the\ncontext manager, which performs the write.\n\nWhen multiple clients are all updating the same user reference, it\u0027s\nmore likely they will see an HTTP 500 because of race conditions exiting\nthe context manager. The HTTP 500 is due to stale data when updating\npassword expiration for old passwords, which happens when setting a new\npassword for a user.\n\nThis commit attempts to handle that case more gracefully than throwing a\n500 by detecting StaleDataErrors from sqlalchemy and retrying.  The\nidentity sql backend will retry the request for clients that have\nstale data change from underneath them.\n\nChange-Id: I75590c20e90170ed862f46f0de7d61c7810b5c90\nCloses-Bug: 1885753\n(cherry picked from commit ceae3566e83b26fd6a1679154eae9b0cef29da64)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/f47e635b8041542faa05e64606e66d2fbbc5f284"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/keystone/commit/f47e635b8041542faa05e64606e66d2fbbc5f284"}]},"branch":"refs/heads/stable/wallaby"}},"requirements":[],"submit_records":[{"status":"CLOSED","labels":[{"label":"Verified","status":"OK","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"OK","applied_by":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"}},{"label":"Workflow","status":"OK","applied_by":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"}}]}],"submit_requirements":[{"name":"Verified","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Verified\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Workflow","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Workflow\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}},{"name":"Code-Review","status":"SATISFIED","is_legacy":true,"submittability_expression_result":{"expression":"label:Code-Review\u003dCustom-Rule","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dCustom-Rule"],"failing_atoms":[],"atom_explanations":{}}}]}
