)]}'
{"id":"openstack%2Fneutron~721244","triplet_id":"openstack%2Fneutron~stable%2Fqueens~I20cfa1cf5281198079f5e0dbf195755abc919581","project":"openstack/neutron","branch":"stable/queens","topic":"bug/1837635-stable/queens","hashtags":[],"change_id":"I20cfa1cf5281198079f5e0dbf195755abc919581","subject":"Refactor the L3 agent batch notifier","status":"MERGED","created":"2020-04-20 11:45:35.000000000","updated":"2020-04-23 04:48:35.000000000","submitted":"2020-04-23 04:48:35.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":"721244-1587617315179-e07a6454","meta_rev_id":"e7a54dbdbf0eb84e41e4ac0451c72568d135815a","_number":721244,"virtual_id_number":721244,"owner":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},{"value":0,"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},{"value":0,"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"tag":"autogenerated:zuul:gate","value":2,"date":"2020-04-23 04:48:34.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"date":"2020-04-20 11:53:32.000000000","_account_id":26622,"name":"Cloudbase Neutron Hyper-V CI","email":"neutron_hyperv_ci@cloudbasesolutions.com","username":"neutron_hyperv_ci"}],"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":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"recommended":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"all":[{"value":1,"date":"2020-04-21 17:45:33.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":2,"date":"2020-04-22 11:35:20.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},{"value":2,"date":"2020-04-22 23:33:27.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},{"value":2,"date":"2020-04-22 18:52:03.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":26622,"name":"Cloudbase Neutron Hyper-V CI","email":"neutron_hyperv_ci@cloudbasesolutions.com","username":"neutron_hyperv_ci"}],"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":"","value":1,"default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"all":[{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},{"value":1,"date":"2020-04-22 23:33:27.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},{"value":0,"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":26622,"name":"Cloudbase Neutron Hyper-V CI","email":"neutron_hyperv_ci@cloudbasesolutions.com","username":"neutron_hyperv_ci"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Review-Priority":{"all":[{"value":0,"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"value":0,"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},{"value":0,"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},{"value":0,"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":26622,"name":"Cloudbase Neutron Hyper-V CI","email":"neutron_hyperv_ci@cloudbasesolutions.com","username":"neutron_hyperv_ci"}],"values":{"-1":"Branch Freeze"," 0":"No Priority","+1":"Important Change","+2":"Gate Blocker Fix / Urgent Change"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26622,"name":"Cloudbase Neutron Hyper-V CI","email":"neutron_hyperv_ci@cloudbasesolutions.com","username":"neutron_hyperv_ci"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2020-04-20 11:53:32.000000000","updated_by":{"_account_id":26622,"name":"Cloudbase Neutron Hyper-V CI","email":"neutron_hyperv_ci@cloudbasesolutions.com","username":"neutron_hyperv_ci"},"reviewer":{"_account_id":26622,"name":"Cloudbase Neutron Hyper-V CI","email":"neutron_hyperv_ci@cloudbasesolutions.com","username":"neutron_hyperv_ci"},"state":"REVIEWER"},{"updated":"2020-04-21 17:45:33.000000000","updated_by":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"reviewer":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"state":"REVIEWER"},{"updated":"2020-04-22 11:35:20.000000000","updated_by":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"reviewer":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"state":"REVIEWER"},{"updated":"2020-04-22 18:52:03.000000000","updated_by":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"reviewer":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"state":"REVIEWER"},{"updated":"2020-04-22 23:33:27.000000000","updated_by":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"reviewer":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"state":"REVIEWER"},{"updated":"2020-04-23 04:48:34.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":"95932de985e6a292de2d5d742bcb5bf73f2b005b","author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"date":"2020-04-20 11:45:35.000000000","message":"Patch Set 1: Cherry Picked from branch stable/rocky.","accounts_in_message":[],"_revision_number":1},{"id":"c1ee74b5aba6388f85f90a79e54f00b7c95ab5a5","author":{"_account_id":26622,"name":"Cloudbase Neutron Hyper-V CI","email":"neutron_hyperv_ci@cloudbasesolutions.com","username":"neutron_hyperv_ci"},"date":"2020-04-20 11:53:32.000000000","message":"Patch Set 1:\n\nFor rechecking only on the Cloudbase Neutron Hyper-V CI, add a review comment with run-Cloudbase Neutron Hyper-V CI\n\n- neutron http://cloudbase-ci.com/neutron/721244/1 : FAILURE in 7m 24s","accounts_in_message":[],"_revision_number":1},{"id":"fc0e80ae11f8bd9126913371dec4290d78eb8f0c","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-04-20 21:50:16.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- neutron-tempest-plugin-api-queens https://zuul.opendev.org/t/openstack/build/607e9b1cc547448dad2722810ada4a61 : SUCCESS in 55m 51s\n- neutron-tempest-plugin-designate-scenario-queens https://zuul.opendev.org/t/openstack/build/90f0465337dd4ed3ab4f3cdf54f4d4ad : SUCCESS in 44m 06s\n- neutron-tempest-plugin-dvr-multinode-scenario-queens https://zuul.opendev.org/t/openstack/build/3da99b1312ed49729b1878d8d1b640d5 : FAILURE in 1h 17m 31s (non-voting)\n- neutron-tempest-plugin-scenario-linuxbridge-queens https://zuul.opendev.org/t/openstack/build/8da55c5f11d5489b9e4e3c899eb4002d : SUCCESS in 58m 34s\n- neutron-tempest-plugin-scenario-openvswitch-queens https://zuul.opendev.org/t/openstack/build/068702308bdd487a9c13aaf2c4a02bd5 : SUCCESS in 1h 14m 20s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4c877bc3eab34e789e8d4d8356da8595 : SUCCESS in 10m 41s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/8d34cbba13e0425087bfd986b9a4aa05 : SUCCESS in 27m 30s\n- openstack-tox-py35 https://zuul.opendev.org/t/openstack/build/84091490fc914262b60f380de4a405b2 : SUCCESS in 29m 16s\n- build-openstack-sphinx-docs https://zuul.opendev.org/t/openstack/build/6c429f0678e149239814e82e2a7724de : SUCCESS in 6m 56s\n- tempest-full https://zuul.opendev.org/t/openstack/build/4d2c423a07834779ba3d12485e53ac68 : SUCCESS in 1h 21m 49s\n- neutron-grenade https://zuul.opendev.org/t/openstack/build/396a59d7f1544aadaa3d646ae05e0e57 : SUCCESS in 57m 28s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/ff8a4770340049a4a2da11f5708418c2 : SUCCESS in 1h 17m 49s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/2c4cfa679e2544c9b58d01b4c1fc4d3d : SUCCESS in 40m 15s\n- neutron-fullstack https://zuul.opendev.org/t/openstack/build/368670e5174a465984ef38846bc5e449 : FAILURE in 50m 03s (non-voting)\n- neutron-rally-neutron https://zuul.opendev.org/t/openstack/build/88d33c29f0eb413496ac8b7575ea8dd6 : SUCCESS in 1h 46m 57s\n- neutron-tempest-dvr https://zuul.opendev.org/t/openstack/build/a74490b6f1b04bbca9132b96e62f0f6e : SUCCESS in 1h 30m 36s\n- neutron-tempest-linuxbridge https://zuul.opendev.org/t/openstack/build/93518c9be4774fc1b5836f617a62061b : SUCCESS in 1h 21m 57s\n- neutron-grenade-multinode https://zuul.opendev.org/t/openstack/build/70f620241d634d008b6d74bda4237a59 : SUCCESS in 1h 08m 38s\n- neutron-grenade-dvr-multinode https://zuul.opendev.org/t/openstack/build/d70ead8aac624b7ebd510c6567ebcf3f : SUCCESS in 1h 11m 36s\n- neutron-tempest-multinode-full https://zuul.opendev.org/t/openstack/build/f494fa024c0e4e4abf747f5f30999f7f : SUCCESS in 1h 35m 48s (non-voting)\n- neutron-tempest-dvr-ha-multinode-full https://zuul.opendev.org/t/openstack/build/241038fe810e44daa1d88ef7f89f8c5c : SUCCESS in 1h 39m 35s (non-voting)\n- neutron-tempest-ovsfw https://zuul.opendev.org/t/openstack/build/028e4db894454bce807332a3a9aba85c : SUCCESS in 1h 14m 36s (non-voting)\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/3df3efe45a274e388086a2db7bae3a88 : SUCCESS in 39m 38s","accounts_in_message":[],"_revision_number":1},{"id":"bc1da253ed0e0aa67ee15ca717c345ff9a473d07","author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"date":"2020-04-21 17:45:33.000000000","message":"Patch Set 1: Code-Review+1","accounts_in_message":[],"_revision_number":1},{"id":"7e314ce668653371414d25c91897bf142422c5fa","author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"date":"2020-04-22 11:35:20.000000000","message":"Patch Set 1: Code-Review+2","accounts_in_message":[],"_revision_number":1},{"id":"9201a652ae30b27e87ef77f3dbe48b5922ca17f8","author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"date":"2020-04-22 18:52:03.000000000","message":"Patch Set 1: Code-Review+2\n\nOnce Rocky change merges we can push this","accounts_in_message":[],"_revision_number":1},{"id":"6241b936e256ef4e540c765d15f5097001425584","author":{"_account_id":4694,"name":"Miguel Lavalle","email":"miguel@mlavalle.com","username":"minsel"},"date":"2020-04-22 23:33:27.000000000","message":"Patch Set 1: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":1},{"id":"83f71e24e3dabf1b06feff173502d9a18cfe21a6","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-04-22 23:34:08.000000000","message":"Patch Set 1: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":1},{"id":"c44769b69af79a1a66526d170332cd39180596a6","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-04-23 04:48:34.000000000","message":"Patch Set 1: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- neutron-tempest-plugin-api-queens https://zuul.opendev.org/t/openstack/build/d303a1d3777b4dfb8780167683e7e352 : SUCCESS in 54m 14s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/4273ac2bdcd94d7bbdb9729236e1a87d : SUCCESS in 14m 42s\n- openstack-tox-py27 https://zuul.opendev.org/t/openstack/build/0debf4022fde4ad19fc897e3856939ff : SUCCESS in 34m 02s\n- openstack-tox-py35 https://zuul.opendev.org/t/openstack/build/5c26f841592a4920ab48f26a271655bb : SUCCESS in 27m 45s\n- build-openstack-sphinx-docs https://zuul.opendev.org/t/openstack/build/5ecad59c3dc64ff3b75a3b9d227caf15 : SUCCESS in 10m 34s\n- tempest-full https://zuul.opendev.org/t/openstack/build/b0f7bf38133d418da40d5cea6effa2c0 : SUCCESS in 1h 28m 52s\n- neutron-grenade https://zuul.opendev.org/t/openstack/build/ab84d143db1f47668161609c7adad26c : SUCCESS in 47m 06s\n- tempest-full-py3 https://zuul.opendev.org/t/openstack/build/6da1a21977984fcb89b42a73aeac4c3e : SUCCESS in 1h 19m 29s\n- neutron-functional https://zuul.opendev.org/t/openstack/build/4e2e91f606f54a44b8a6f6acfe917d74 : SUCCESS in 37m 00s\n- neutron-tempest-dvr https://zuul.opendev.org/t/openstack/build/ff4a899070764c89a12c318310c3faf3 : SUCCESS in 1h 30m 24s\n- neutron-tempest-linuxbridge https://zuul.opendev.org/t/openstack/build/c118d4e3fb2b444c8e10fc536073abf6 : SUCCESS in 1h 09m 52s\n- neutron-grenade-multinode https://zuul.opendev.org/t/openstack/build/8d016eb179134336ad2276a6d738d309 : SUCCESS in 1h 01m 09s\n- neutron-grenade-dvr-multinode https://zuul.opendev.org/t/openstack/build/5d246762adb6429daed0ba6fad62c6ed : SUCCESS in 1h 04m 24s\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/b186ae4511074466986bcf88255bd90d : SUCCESS in 35m 28s","accounts_in_message":[],"_revision_number":1},{"id":"9276662b79ad90dc5e3bf8cfe2c3b8b20f0bd192","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2020-04-23 04:48:35.000000000","message":"Change has been successfully merged by Zuul","accounts_in_message":[],"_revision_number":1}],"current_revision_number":1,"current_revision":"3f8ee68f116fd38fd18d6a5832f1934d212bc321","revisions":{"3f8ee68f116fd38fd18d6a5832f1934d212bc321":{"kind":"REWORK","_number":1,"created":"2020-04-20 11:45:35.000000000","uploader":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"ref":"refs/changes/44/721244/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/neutron","ref":"refs/changes/44/721244/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/neutron refs/changes/44/721244/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/neutron refs/changes/44/721244/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/neutron refs/changes/44/721244/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/neutron refs/changes/44/721244/1"}}},"commit":{"parents":[{"commit":"a96f950e4bbe03495dd80cc541a644dce94528ac","subject":"Merge \"Check dnsmasq process is active when spawned\" into stable/queens","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/a96f950e4bbe03495dd80cc541a644dce94528ac"}]}],"author":{"name":"Rodolfo Alonso Hernandez","email":"ralonsoh@redhat.com","date":"2019-07-24 11:17:19.000000000","tz":0},"committer":{"name":"Slawek Kaplonski","email":"skaplons@redhat.com","date":"2020-04-20 11:45:35.000000000","tz":0},"subject":"Refactor the L3 agent batch notifier","message":"Refactor the L3 agent batch notifier\n\nThis patch is the first one of a series of patches improving how the L3\nagents update the router HA state to the Neutron server.\n\nThis patch partially reverts the previous patch [1]. When the batch\nnotifier sends events, it calls the callback method passed during the\ninitialization, in this case AgentMixin.notify_server. The batch\nnotifier spawns a new thread in charge of sending the notifications and\nthen wait the specified \"batch_interval\" time. If the callback method is\nnot synchronous with the notify thread execution (what [1] implemented),\nthe thread can finish while the RPC client is still sending the\nHA router states. If another HA state update is received, then both\nupdates can be executed at the same time. It is possible then that a new\nrouter state can be overwritten with an old one still not sent or\nprocessed.\n\nThe batch notifier is refactored, to improve what initally was\nimplemented [2] and then updated [3]. Currently, each new event thread\ncan update the \"pending_events\" list. Then, a new thread is spawned to\nprocess this event list. This thread decouples the current execution\nfrom the calling thread, making the event processing a non-blocking\nprocess.\n\nBut with the current implementation, each new process will spawn a new\nthread, synchronized with the previous and new ones (using a\nsynchronized decorator). That means, during the batch interval time, the\nsystem can have as many threads waiting as new events received. Those\nthreads will end secuentially when the previous threads end the batch\ninterval sleep time.\n\nInstead of this, this patch receives and enqueue each new event and\nallows only one thread to be alive while processing the event list. If\nat the end of the processing loop new events are stored, the thread will\nprocess then.\n\n[1] I3f555a0c78fbc02d8214f12b62c37d140bc71da1\n[2] I2f8cf261f48bdb632ac0bd643a337290b5297fce\n[3] I82f403441564955345f47877151e0c457712dd2f\n\nPartial-Bug: #1837635\n\nChange-Id: I20cfa1cf5281198079f5e0dbf195755abc919581\n(cherry picked from commit 8b7d2c8a93fdf69a828f14bd527d8f132b27bc6e)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/3f8ee68f116fd38fd18d6a5832f1934d212bc321"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/neutron/commit/3f8ee68f116fd38fd18d6a5832f1934d212bc321"}]},"branch":"refs/heads/stable/queens"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
