)]}'
{"neutron/agent/l3/ha_router.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"776d9d8c51667b8edc667260fab3340dc2dc0c76","unresolved":true,"context_lines":[{"line_number":447,"context_line":"            common_utils.wait_until_true(lambda: not pm.active,"},{"line_number":448,"context_line":"                                         timeout\u003dSIGTERM_TIMEOUT)"},{"line_number":449,"context_line":"        except common_utils.WaitTimeout:"},{"line_number":450,"context_line":"            LOG.warning(\u0027Keepalived process %s did not finish after SIGTERM \u0027"},{"line_number":451,"context_line":"                        \u0027signal in %s seconds, sending SIGKILL signal\u0027,"},{"line_number":452,"context_line":"                        pm.pid, SIGTERM_TIMEOUT)"},{"line_number":453,"context_line":"            pm.disable(sig\u003dstr(int(signal.SIGKILL)))"}],"source_content_type":"text/x-python","patch_set":2,"id":"6f861fe1_b6467784","line":450,"range":{"start_line":450,"start_character":25,"end_line":450,"end_character":43},"updated":"2020-12-16 06:03:56.000000000","message":"state change monitor. Seems wrong file also","commit_id":"7466570a580d7e4a031eb47020f34b555f461aa9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1832251d87aa352904cf6093996e97b47628baaa","unresolved":true,"context_lines":[{"line_number":447,"context_line":"            common_utils.wait_until_true(lambda: not pm.active,"},{"line_number":448,"context_line":"                                         timeout\u003dSIGTERM_TIMEOUT)"},{"line_number":449,"context_line":"        except common_utils.WaitTimeout:"},{"line_number":450,"context_line":"            LOG.warning(\u0027Keepalived process %s did not finish after SIGTERM \u0027"},{"line_number":451,"context_line":"                        \u0027signal in %s seconds, sending SIGKILL signal\u0027,"},{"line_number":452,"context_line":"                        pm.pid, SIGTERM_TIMEOUT)"},{"line_number":453,"context_line":"            pm.disable(sig\u003dstr(int(signal.SIGKILL)))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1592caae_effaa387","line":450,"range":{"start_line":450,"start_character":25,"end_line":450,"end_character":43},"in_reply_to":"6f861fe1_b6467784","updated":"2020-12-16 16:31:41.000000000","message":"Sorry!! Every day I\u0027m more clueless. I search for \"pm.disable(sig\u003dstr(int(signal.SIGTERM)))\" and I found this...","commit_id":"7466570a580d7e4a031eb47020f34b555f461aa9"}],"neutron/agent/linux/keepalived.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"4d902a0c54a939ee16b751b0c126eb909747296c","unresolved":true,"context_lines":[{"line_number":484,"context_line":"            utils.wait_until_true(lambda: not pm.active,"},{"line_number":485,"context_line":"                                  timeout\u003dSIGTERM_TIMEOUT)"},{"line_number":486,"context_line":"        except utils.WaitTimeout:"},{"line_number":487,"context_line":"            pm.disable(sig\u003dstr(int(signal.SIGKILL)))"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    def check_processes(self):"},{"line_number":490,"context_line":"        keepalived_pm \u003d self.get_process()"}],"source_content_type":"text/x-python","patch_set":1,"id":"9d52957a_dbb6cee1","line":487,"range":{"start_line":487,"start_character":12,"end_line":487,"end_character":52},"updated":"2020-12-15 05:49:36.000000000","message":"AFAIR with SIGKILL keepalived will not remove VIP address from gw device if it\u0027s master. This leads to a situation when same VIP is present on different nodes and hence to a long downtime (https://bugs.launchpad.net/neutron/+bug/1851609). Need to make sure we\u0027re not introducing this bug here. Ideally need to figure out why keepalived is not exiting.","commit_id":"f9a3e46b1aa623fd408e655bc0df1866c8858e4f"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"4f4d0b74f64b83300a236b44c977c2b7844d62b9","unresolved":true,"context_lines":[{"line_number":484,"context_line":"            utils.wait_until_true(lambda: not pm.active,"},{"line_number":485,"context_line":"                                  timeout\u003dSIGTERM_TIMEOUT)"},{"line_number":486,"context_line":"        except utils.WaitTimeout:"},{"line_number":487,"context_line":"            pm.disable(sig\u003dstr(int(signal.SIGKILL)))"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    def check_processes(self):"},{"line_number":490,"context_line":"        keepalived_pm \u003d self.get_process()"}],"source_content_type":"text/x-python","patch_set":1,"id":"ec49c887_5468c02c","line":487,"range":{"start_line":487,"start_character":12,"end_line":487,"end_character":52},"in_reply_to":"812f46a9_5a2b7ac9","updated":"2020-12-15 09:34:17.000000000","message":"I tried the script and see how it works now, didn\u0027t know about separate monitoring process. Thanks for clarification! \nMaybe a warning log that process is not exiting with sigterm and going to be killed would be useful.","commit_id":"f9a3e46b1aa623fd408e655bc0df1866c8858e4f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b79e36e7bb7dfd28d24fa2235a06d2dad6ef5d25","unresolved":true,"context_lines":[{"line_number":484,"context_line":"            utils.wait_until_true(lambda: not pm.active,"},{"line_number":485,"context_line":"                                  timeout\u003dSIGTERM_TIMEOUT)"},{"line_number":486,"context_line":"        except utils.WaitTimeout:"},{"line_number":487,"context_line":"            pm.disable(sig\u003dstr(int(signal.SIGKILL)))"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    def check_processes(self):"},{"line_number":490,"context_line":"        keepalived_pm \u003d self.get_process()"}],"source_content_type":"text/x-python","patch_set":1,"id":"812f46a9_5a2b7ac9","line":487,"range":{"start_line":487,"start_character":12,"end_line":487,"end_character":52},"in_reply_to":"9d52957a_dbb6cee1","updated":"2020-12-15 08:34:01.000000000","message":"http://paste.openstack.org/show/801040/\n\nPlease take a look at this paste file. It contains a small script to built a small environment to run keepalived (not in containers), to configure and tested it.\n\nkeepalived spawns a monitoring thread to listen to the VRRP messages and provisioning the VIPs. \n\nIf the monitoring thread is killed, the main process will spawn another one, start the voting process and provision again the VIPs. The VIPs are deleted from the interfaces **when the new thread is spawned**.\n\nIf the main thread is killed, the monitoring thread will remove the VIPs and exit.\n\nThe point of this patch is to kill the main thread and allow the monitoring thread to exit (deleting the VIPs). In any case, if both the main and the monitoring thread are blocked by any reason and the VIPs are not deleted, at least the main thread is removed and another instance can be spawn. That will initially delete the VIPs.\n\nBTW, this is not related to the container issue you reported in the LP bug. When you stop the container, both threads are stopped and the monitoring thread cannot exit properly, deleting the VIPs.","commit_id":"f9a3e46b1aa623fd408e655bc0df1866c8858e4f"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"407cfd12e7cb37832f3b8b988c8d3d29c5451b91","unresolved":false,"context_lines":[{"line_number":484,"context_line":"            utils.wait_until_true(lambda: not pm.active,"},{"line_number":485,"context_line":"                                  timeout\u003dSIGTERM_TIMEOUT)"},{"line_number":486,"context_line":"        except utils.WaitTimeout:"},{"line_number":487,"context_line":"            pm.disable(sig\u003dstr(int(signal.SIGKILL)))"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    def check_processes(self):"},{"line_number":490,"context_line":"        keepalived_pm \u003d self.get_process()"}],"source_content_type":"text/x-python","patch_set":1,"id":"8025c10d_ccd7b028","line":487,"range":{"start_line":487,"start_character":12,"end_line":487,"end_character":52},"in_reply_to":"ec49c887_5468c02c","updated":"2020-12-15 14:40:52.000000000","message":"Done","commit_id":"f9a3e46b1aa623fd408e655bc0df1866c8858e4f"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"776d9d8c51667b8edc667260fab3340dc2dc0c76","unresolved":true,"context_lines":[{"line_number":483,"context_line":"        try:"},{"line_number":484,"context_line":"            utils.wait_until_true(lambda: not pm.active,"},{"line_number":485,"context_line":"                                  timeout\u003dSIGTERM_TIMEOUT)"},{"line_number":486,"context_line":"        except utils.WaitTimeout:"},{"line_number":487,"context_line":"            pm.disable(sig\u003dstr(int(signal.SIGKILL)))"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    def check_processes(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"2dd2b7fd_6b4b0d30","line":486,"updated":"2020-12-16 06:03:56.000000000","message":"meant to be here?","commit_id":"7466570a580d7e4a031eb47020f34b555f461aa9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1832251d87aa352904cf6093996e97b47628baaa","unresolved":true,"context_lines":[{"line_number":483,"context_line":"        try:"},{"line_number":484,"context_line":"            utils.wait_until_true(lambda: not pm.active,"},{"line_number":485,"context_line":"                                  timeout\u003dSIGTERM_TIMEOUT)"},{"line_number":486,"context_line":"        except utils.WaitTimeout:"},{"line_number":487,"context_line":"            pm.disable(sig\u003dstr(int(signal.SIGKILL)))"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"    def check_processes(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3bd67a6e_9d239b2a","line":486,"in_reply_to":"2dd2b7fd_6b4b0d30","updated":"2020-12-16 16:31:41.000000000","message":"Yes, sorry!","commit_id":"7466570a580d7e4a031eb47020f34b555f461aa9"}]}
