)]}'
{"neutron/agent/linux/external_process.py":[{"author":{"_account_id":14611,"name":"dasm","display_name":"dasm","email":"dsmigiel@redhat.com","username":"dasm"},"change_message_id":"0133f928d8732c5a2d9fc902c4a028d9b6a456f0","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def reload_cfg(self):"},{"line_number":98,"context_line":"        self.disable(\u0027HUP\u0027)"},{"line_number":99,"context_line":"        time.sleep(0.2)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def disable(self, sig\u003d\u00279\u0027, get_stop_command\u003dNone):"},{"line_number":102,"context_line":"        pid \u003d self.pid"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_b5cdc2bc","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":23},"updated":"2016-07-01 13:55:43.000000000","message":"As I understand why it is done, I\u0027m not quite sure it is the best solution for this issue.","commit_id":"fd5946f47aa3c11c211f3b0bfdd931eaf79b455f"},{"author":{"_account_id":6635,"name":"John Davidge","email":"john.davidge@rackspace.com","username":"john-davidge"},"change_message_id":"bec14fdb4ff50babf63be7be650c982e8d3f42ff","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def reload_cfg(self):"},{"line_number":98,"context_line":"        self.disable(\u0027HUP\u0027)"},{"line_number":99,"context_line":"        time.sleep(0.2)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def disable(self, sig\u003d\u00279\u0027, get_stop_command\u003dNone):"},{"line_number":102,"context_line":"        pid \u003d self.pid"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_c0924efc","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":23},"in_reply_to":"3aaa91ec_0033b663","updated":"2016-07-01 14:32:39.000000000","message":"Please add a comment here to explain to others why this is necessary","commit_id":"fd5946f47aa3c11c211f3b0bfdd931eaf79b455f"},{"author":{"_account_id":8259,"name":"Andrey Shestakov","email":"ashestakov@mirantis.com","username":"ashestakov"},"change_message_id":"316097c26a4d12a1a075503da722d60c17541f42","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def reload_cfg(self):"},{"line_number":98,"context_line":"        self.disable(\u0027HUP\u0027)"},{"line_number":99,"context_line":"        time.sleep(0.2)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def disable(self, sig\u003d\u00279\u0027, get_stop_command\u003dNone):"},{"line_number":102,"context_line":"        pid \u003d self.pid"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_0033b663","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":23},"in_reply_to":"3aaa91ec_b5cdc2bc","updated":"2016-07-01 14:27:40.000000000","message":"best solution is fix issue in dnsmasq, but as i see, dnsmasq using async events for signal handle without locking of resource and i did not find how to fix it.","commit_id":"fd5946f47aa3c11c211f3b0bfdd931eaf79b455f"},{"author":{"_account_id":21273,"name":"Ilya Chukhnakov","email":"Ilya.chukhnakov@gmail.com","username":"ichukhnakov"},"change_message_id":"5155d1fd758cf90ac676c382dbf777c412ef9d64","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def reload_cfg(self):"},{"line_number":98,"context_line":"        self.disable(\u0027HUP\u0027)"},{"line_number":99,"context_line":"        time.sleep(0.2)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def disable(self, sig\u003d\u00279\u0027, get_stop_command\u003dNone):"},{"line_number":102,"context_line":"        pid \u003d self.pid"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_406dbc31","line":99,"range":{"start_line":99,"start_character":8,"end_line":99,"end_character":23},"in_reply_to":"3aaa91ec_c0924efc","updated":"2016-07-02 06:33:58.000000000","message":"Using \u0027sleep\u0027 here is a bad idea.\n\nI see 2 reasons for the problems from the bug description:\n\n1. Neutron sends SIGHUP to dnsmasq too often.\n\nProbably we could throttle the number of SIGHUPs we send instead of adding an artificial pause.\n\n2. dnsmasq SIGHUP handler clears the configuration on reload and is not atomic.\n\nAs you said, that could probably be fixed in dnsmasq itself.\n\nWe could also explore the possibility to use dnsmasq\u0027s DBus interface [1].\n\n[1] http://thekelleys.org.uk/gitweb/?p\u003ddnsmasq.git;a\u003dblob;f\u003ddbus/DBus-interface","commit_id":"fd5946f47aa3c11c211f3b0bfdd931eaf79b455f"}]}
