)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7110240693abbff27d836c4dd53267a0c683367f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b35ba542_afe4c8a7","updated":"2025-03-07 09:08:00.000000000","message":"++","commit_id":"48336cd011c36a39405dd5c5e56d6e5db317d54b"}],"neutron/plugins/ml2/drivers/mech_sriov/agent/sriov_nic_agent.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7b09af8e43085670b80eb5afdc013515565913ea","unresolved":true,"context_lines":[{"line_number":483,"context_line":"        # Do we rally need this ?"},{"line_number":484,"context_line":"        signal.signal(signal.SIGTERM, self._handle_sigterm)"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"        while not self.heartbeat[\u0027event\u0027].is_set():"},{"line_number":487,"context_line":"            start \u003d time.time()"},{"line_number":488,"context_line":"            LOG.debug(\"Agent rpc_loop - iteration:%d started\","},{"line_number":489,"context_line":"                      self.iter_num)"}],"source_content_type":"text/x-python","patch_set":3,"id":"98b2ab15_8376d688","line":486,"updated":"2025-03-05 21:58:21.000000000","message":"Oh now I understand your point on IRC :-) Good Catch.\n\nThat is said, I feel like reusing the same event used with heartbeat is not totally right, don\u0027t you think we could have an event for the daemon_loop, perhaps you can use the function wait() on line 528, and in _handle_sigterm using that new event to set it: ev_daemon_loop.set()","commit_id":"0da5ab23d70e92f714dae5423120abf32cadbe4b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"866f7a72285b1b7c0a5b9e0566c76f1bd445bed9","unresolved":true,"context_lines":[{"line_number":483,"context_line":"        # Do we rally need this ?"},{"line_number":484,"context_line":"        signal.signal(signal.SIGTERM, self._handle_sigterm)"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"        while not self.heartbeat[\u0027event\u0027].is_set():"},{"line_number":487,"context_line":"            start \u003d time.time()"},{"line_number":488,"context_line":"            LOG.debug(\"Agent rpc_loop - iteration:%d started\","},{"line_number":489,"context_line":"                      self.iter_num)"}],"source_content_type":"text/x-python","patch_set":3,"id":"374f2c1f_21569b38","line":486,"in_reply_to":"98b2ab15_8376d688","updated":"2025-03-06 12:19:40.000000000","message":"good idea, let me check it","commit_id":"0da5ab23d70e92f714dae5423120abf32cadbe4b"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"2881ea3096b02627d71fe8c828eefafcb23410db","unresolved":true,"context_lines":[{"line_number":203,"context_line":"        self.heartbeat \u003d {}"},{"line_number":204,"context_line":"        self.daemon_loop_event \u003d threading.Event()"},{"line_number":205,"context_line":"        report_interval \u003d cfg.CONF.AGENT.report_interval"},{"line_number":206,"context_line":"        if report_interval:"},{"line_number":207,"context_line":"            report_event \u003d threading.Event()"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"            def report_worker():"}],"source_content_type":"text/x-python","patch_set":4,"id":"3074febf_58c3be9c","line":206,"range":{"start_line":206,"start_character":7,"end_line":206,"end_character":27},"updated":"2025-03-07 06:37:48.000000000","message":"do we support deployments with disabled heartbeats?","commit_id":"48336cd011c36a39405dd5c5e56d6e5db317d54b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"981324520f0b95409ef6275c3de04f47c7e598e9","unresolved":true,"context_lines":[{"line_number":203,"context_line":"        self.heartbeat \u003d {}"},{"line_number":204,"context_line":"        self.daemon_loop_event \u003d threading.Event()"},{"line_number":205,"context_line":"        report_interval \u003d cfg.CONF.AGENT.report_interval"},{"line_number":206,"context_line":"        if report_interval:"},{"line_number":207,"context_line":"            report_event \u003d threading.Event()"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"            def report_worker():"}],"source_content_type":"text/x-python","patch_set":4,"id":"fd5c2208_dd3f6bcc","line":206,"range":{"start_line":206,"start_character":7,"end_line":206,"end_character":27},"in_reply_to":"3074febf_58c3be9c","updated":"2025-03-10 12:40:59.000000000","message":"I don\u0027t think so, it should be something to handle equally for all agents.","commit_id":"48336cd011c36a39405dd5c5e56d6e5db317d54b"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f710d29af9543cd97e86d2280044d585be80e2a5","unresolved":true,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        LOG.info(\"SRIOV NIC Agent RPC Daemon Started!\")"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"        # Do we rally need this ?"},{"line_number":486,"context_line":"        signal.signal(signal.SIGTERM, self._handle_sigterm)"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        while not self.daemon_loop_event.is_set():"}],"source_content_type":"text/x-python","patch_set":4,"id":"a7c4b69c_5ea792be","line":485,"updated":"2025-03-06 22:28:18.000000000","message":"I think so, right? Although I don\u0027t know what it was doing to handle signals before this.","commit_id":"48336cd011c36a39405dd5c5e56d6e5db317d54b"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"981324520f0b95409ef6275c3de04f47c7e598e9","unresolved":true,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        LOG.info(\"SRIOV NIC Agent RPC Daemon Started!\")"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"        # Do we rally need this ?"},{"line_number":486,"context_line":"        signal.signal(signal.SIGTERM, self._handle_sigterm)"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        while not self.daemon_loop_event.is_set():"}],"source_content_type":"text/x-python","patch_set":4,"id":"dcf2e07a_90afcb5d","line":485,"in_reply_to":"73f794d2_f15ee93c","updated":"2025-03-10 12:40:59.000000000","message":"I added a note about it, thanks","commit_id":"48336cd011c36a39405dd5c5e56d6e5db317d54b"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"336d906f96629fb3622083cf0273053060c1a66f","unresolved":true,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        LOG.info(\"SRIOV NIC Agent RPC Daemon Started!\")"},{"line_number":484,"context_line":""},{"line_number":485,"context_line":"        # Do we rally need this ?"},{"line_number":486,"context_line":"        signal.signal(signal.SIGTERM, self._handle_sigterm)"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"        while not self.daemon_loop_event.is_set():"}],"source_content_type":"text/x-python","patch_set":4,"id":"73f794d2_f15ee93c","line":485,"in_reply_to":"a7c4b69c_5ea792be","updated":"2025-03-07 09:34:28.000000000","message":"I would add a note here. Once we have a ``oslo_service.services`` module implemented with kernel threads, I would move the agent spawning to use ``launch``, instead of using a handmade loop. By using ``launch`` we ensure all the signal handling that ``oslo_service.services`` provides.","commit_id":"48336cd011c36a39405dd5c5e56d6e5db317d54b"}]}
