)]}'
{"id":"openstack%2Fplacement~679109","triplet_id":"openstack%2Fplacement~master~I484390bddf2b9613a122d784dff6fb7eaaf625df","project":"openstack/placement","branch":"master","topic":"story/2006467","hashtags":[],"change_id":"I484390bddf2b9613a122d784dff6fb7eaaf625df","subject":"Introduce jitter during allocations replace_all retry","status":"ABANDONED","created":"2019-08-28 18:05:03.000000000","updated":"2019-11-18 11:02:19.000000000","total_comment_count":2,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"946ac28c6a41fef5f1f9d305764754c18a2d07a5","_number":679109,"virtual_id_number":679109,"owner":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"actions":{},"labels":{"Verified":{"recommended":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":1,"date":"2019-08-29 12:25:35.000000000","permitted_voting_range":{"min":-2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"}],"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"]},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"value":0,"permitted_voting_range":{"min":-2,"max":2},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"}],"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"]},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"permitted_voting_range":{"min":0,"max":1},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"value":0,"permitted_voting_range":{"min":0,"max":2},"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"}],"values":{" 0":"Default Priority","+1":"Contributor Review Promise","+2":"Core Review Promise"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2019-08-28 20:56:19.000000000","updated_by":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"reviewer":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"state":"REVIEWER"},{"updated":"2019-08-29 12:25:35.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":"993b9ef70b14b292d3a2c0c3dff812f37cd73b78","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-08-28 18:05:03.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"552494a3fa06aeaf30903a1da63fe4e3b2f6a601","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-28 20:15:04.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/390e9103d2354c1fa410950eda11e7cb : SUCCESS in 59m 22s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/ce338504322f4505b14143c9b1b04065 : SUCCESS in 1h 18m 59s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/26ae6610bd704a16966dbc06b774bd23 : SUCCESS in 6m 18s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/f60ac4b111f8462a84af72e71aef072d : SUCCESS in 9m 07s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/618c055c922e4bc58fce253d147a2704 : SUCCESS in 9m 13s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/a5a9c6b8854b41dc889d6782d579adac : SUCCESS in 5m 23s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/fb0c4b08f0ff49c7ae3a645a0ac6f240 : SUCCESS in 5m 32s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/32dfa09aa4094c7cbfd3c133be50a6f7 : SUCCESS in 7m 19s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/7bc980175ee144f3b53a8c4ba147de93 : SUCCESS in 4m 59s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/bd8e0636128e466c9b26c7cb56f9c27c : SUCCESS in 8m 08s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/e117e8ed18594cfd8b9762ed151f3883 : SUCCESS in 6m 53s\n- openstack-tox-functional-py37 https://zuul.opendev.org/t/openstack/build/30658c22d29f422899874e7587208054 : SUCCESS in 5m 45s\n- placement-nova-tox-functional-py37 https://zuul.opendev.org/t/openstack/build/93fa1ac1ac2c4264b9c0748551c21060 : SUCCESS in 12m 16s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/1006031c98f34d1da713288a39bf80be : SUCCESS in 11m 55s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/b724da06600240878c3577ef31ce7c39 : SUCCESS in 12m 39s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/0de1e5dd76184713abba109a375357f3 : SUCCESS in 1h 05m 09s","accounts_in_message":[],"_revision_number":1},{"id":"9b356cb4968e38d1abd7aa14491b51db78a724bc","author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"date":"2019-08-28 20:56:19.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nI don\u0027t think we should do this.\n\nI think the caller should jitter its retries instead.","accounts_in_message":[],"_revision_number":1},{"id":"d9371931642a7682dcf5a9d2d7a7d415baa1079e","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-08-28 21:07:12.000000000","message":"Patch Set 1:\n\n(1 comment)\n\n\u003e I think the caller should jitter its retries instead.\n\nThe nova report client already does jitter when it retries.","accounts_in_message":[],"_revision_number":1},{"id":"86fea487fdbdc57374639f8fc5c328c877b87bbb","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-08-29 09:48:54.000000000","message":"Uploaded patch set 2: Patch Set 1 was rebased.","accounts_in_message":[],"_revision_number":2},{"id":"c743f12cc907ba69f9168965a717bb2bd58688b0","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2019-08-29 12:25:35.000000000","message":"Patch Set 2: Verified+1\n\nBuild succeeded (check pipeline).\n\n- grenade-py3 https://zuul.opendev.org/t/openstack/build/882bd4d3ea3e48c283ace1423badd671 : SUCCESS in 1h 03m 21s\n- tempest-integrated-placement https://zuul.opendev.org/t/openstack/build/ad61e34535bb484384f4c60831233374 : SUCCESS in 1h 36m 53s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/79df45325b734ad1b2f2e039fb739e57 : SUCCESS in 5m 12s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/4785f26184e64df4b588e2fafa06b2b2 : SUCCESS in 7m 28s\n- openstack-tox-lower-constraints https://zuul.opendev.org/t/openstack/build/a01e31d4bb8f4d9189e22f1d61c4773e : SUCCESS in 5m 42s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/c40323332a684755b26cbdf90fbc25f1 : SUCCESS in 6m 14s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/2f1e681fea4544608de2cdde5e511893 : SUCCESS in 6m 39s\n- openstack-tox-py36 https://zuul.opendev.org/t/openstack/build/23a6ffc40e2148bc884ab4e3c1937579 : SUCCESS in 5m 48s\n- openstack-tox-py37 https://zuul.opendev.org/t/openstack/build/8e974361d8c6412a9f9ed026a67ed4a3 : SUCCESS in 6m 49s\n- openstack-tox-functional https://zuul.opendev.org/t/openstack/build/465e92f98258417bb7c5d69935eefa2a : SUCCESS in 5m 51s\n- openstack-tox-functional-py36 https://zuul.opendev.org/t/openstack/build/29921ce54a704f669636c7fbb19a7669 : SUCCESS in 5m 01s\n- openstack-tox-functional-py37 https://zuul.opendev.org/t/openstack/build/105e32ee9e79493dbe951beb5f4c7215 : SUCCESS in 6m 08s\n- placement-nova-tox-functional-py37 https://zuul.opendev.org/t/openstack/build/f9ca0585f4254067b9e1a9d215cb0775 : SUCCESS in 11m 52s\n- placement-nested-perfload https://zuul.opendev.org/t/openstack/build/2dcca0753ce44830919e52d2d1701c0c : SUCCESS in 31m 49s (non-voting)\n- placement-perfload https://zuul.opendev.org/t/openstack/build/4c32e46d36c04f15a586ea208933c80d : SUCCESS in 10m 28s (non-voting)\n- tempest-ipv6-only https://zuul.opendev.org/t/openstack/build/9573c0e8679647b59f5c9df411254d1c : SUCCESS in 1h 02m 19s","accounts_in_message":[],"_revision_number":2},{"id":"ac9ce4f6b9c2db4773f412c23ebb8b09b162a485","author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"date":"2019-11-18 11:02:19.000000000","message":"Abandoned\n\nThe parent was the important part","accounts_in_message":[],"_revision_number":2}],"current_revision_number":2,"current_revision":"49cf31a336527956d9ada3f61072d34955c4e558","revisions":{"d3982f117c6bb39e4842a6acd9544f183d3c9671":{"kind":"REWORK","_number":1,"created":"2019-08-28 18:05:03.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/09/679109/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/09/679109/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/09/679109/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/09/679109/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/09/679109/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/09/679109/1"}}},"commit":{"parents":[{"commit":"63386c0117f7b2faed001ffa1cd17fda405ca0f5","subject":"Add allocation_conflict_retry_count conf setting","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/63386c0117f7b2faed001ffa1cd17fda405ca0f5"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-28 17:53:34.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-28 18:04:37.000000000","tz":60},"subject":"Introduce jitter during allocations replace_all retry","message":"Introduce jitter during allocations replace_all retry\n\nWhen there are highly concurrent allocation writes for the same\nresource provider, the retry loop in replace_all can reach the\nend of its retries quite often. It\u0027s common wisdom that such\nretry loops should introduce a bit of random jitter so we do that\nhere.\n\nIn the unlikely event the loop sleeps the maximum per iteration and\nretries its default maximum, the time used by the request will be\nextended by a bit more than 10 seconds.\n\nThe functional test changes confirm that the sleep is called. The\nsomewhat complex gyrations to make sure we are mocking only the\ntime module imported into placement.objects.allocation is\nbecause sqlalchemy also does sleeps of its own (sleep(0) to get\nthreads to yield) and we do not wish to count those.\n\nChange-Id: I484390bddf2b9613a122d784dff6fb7eaaf625df\nStory: 2006467\nTask: 36404\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/d3982f117c6bb39e4842a6acd9544f183d3c9671"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/d3982f117c6bb39e4842a6acd9544f183d3c9671"}]},"branch":"refs/heads/master"},"49cf31a336527956d9ada3f61072d34955c4e558":{"kind":"TRIVIAL_REBASE","_number":2,"created":"2019-08-29 09:48:54.000000000","uploader":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"ref":"refs/changes/09/679109/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/placement","ref":"refs/changes/09/679109/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/placement refs/changes/09/679109/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/placement refs/changes/09/679109/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/placement refs/changes/09/679109/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/placement refs/changes/09/679109/2"}}},"commit":{"parents":[{"commit":"e2599b3af155111e9ddd30f227bfc751b50690df","subject":"Add allocation_conflict_retry_count conf setting","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/e2599b3af155111e9ddd30f227bfc751b50690df"}]}],"author":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-28 17:53:34.000000000","tz":60},"committer":{"name":"Chris Dent","email":"cdent@anticdent.org","date":"2019-08-29 09:48:29.000000000","tz":60},"subject":"Introduce jitter during allocations replace_all retry","message":"Introduce jitter during allocations replace_all retry\n\nWhen there are highly concurrent allocation writes for the same\nresource provider, the retry loop in replace_all can reach the\nend of its retries quite often. It\u0027s common wisdom that such\nretry loops should introduce a bit of random jitter so we do that\nhere.\n\nIn the unlikely event the loop sleeps the maximum per iteration and\nretries its default maximum, the time used by the request will be\nextended by a bit more than 10 seconds.\n\nThe functional test changes confirm that the sleep is called. The\nsomewhat complex gyrations to make sure we are mocking only the\ntime module imported into placement.objects.allocation is\nbecause sqlalchemy also does sleeps of its own (sleep(0) to get\nthreads to yield) and we do not wish to count those.\n\nChange-Id: I484390bddf2b9613a122d784dff6fb7eaaf625df\nStory: 2006467\nTask: 36404\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/49cf31a336527956d9ada3f61072d34955c4e558"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/placement/commit/49cf31a336527956d9ada3f61072d34955c4e558"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
