)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"449863d7c807e7a89048683bd44990058f89f369","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"559eb779_9627a405","updated":"2025-11-07 16:32:44.000000000","message":"thanks, the stop seems to be ok :)\n\nI try to summarize what I saw in my devstack. If I start dhcpp-agent (master or from my patch https://review.opendev.org/c/openstack/neutron/+/963386 ) and check systemctl status devstack@q-dhcp.service, in the CGroup section I see these processes associated with the dhcp agent service i.e.:\n     CGroup: /system.slice/system-devstack.slice/devstack@q-dhcp.service\n             ├─124363 \"neutron-dhcp-agent: master process [/opt/stack/data/venv/bin/neutron-dhcp-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini]\"\n             ├─124379 \"neutron-dhcp-agent: ServiceWrapper worker(0)\"\n             ├─124407 /opt/stack/data/venv/bin/python3.12 /usr/local/bin/privsep-helper --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini --privsep_context n\u003e\n             ├─124430 /opt/stack/data/venv/bin/python3.12 /usr/local/bin/privsep-helper --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini --privsep_context n\u003e\n             ├─124452 /opt/stack/data/venv/bin/python3.12 /usr/local/bin/privsep-helper --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini --privsep_context n\u003e\n             ├─124636 sudo /opt/stack/data/venv/bin/neutron-rootwrap-daemon /etc/neutron/rootwrap.conf\n             ├─124637 /opt/stack/data/venv/bin/python3.12 /opt/stack/data/venv/bin/neutron-rootwrap-daemon /etc/neutron/rootwrap.conf\n             ├─124656 haproxy -f /opt/stack/data/neutron/ns-metadata-proxy/38ef4b74-f9b8-41ee-b04b-1ab920643e0e.conf\n             ├─124803 dnsmasq --no-hosts \"\" --pid-file\u003d/opt/stack/data/neutron/dhcp/38ef4b74-f9b8-41ee-b04b-1ab920643e0e/pid --dhcp-hostsfile\u003d/opt/stack/data/neutron/dhcp/38ef4b74-f9b8-41ee\u003e\n             └─124807 dnsmasq --no-hosts \"\" --pid-file\u003d/opt/stack/data/neutron/dhcp/60aedb8d-e95b-46da-94b1-d33839a871e9/pid --dhcp-hostsfile\u003d/opt/stack/data/neutron/dhcp/60aedb8d-e95b-46da\u003e\n\n\nIf I start the agent with this patch I see only the servicewrapper and the master process:\n     CGroup: /system.slice/system-devstack.slice/devstack@q-dhcp.service\n             ├─81680 \"neutron-dhcp-agent: master process [/opt/stack/data/venv/bin/neutron-dhcp-agent --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/dhcp_agent.ini]\"\n             └─82505 \"neutron-dhcp-agent: ServiceWrapper worker(0)\"","commit_id":"056bacb0610231e1ce738e4e1daf30804a5679aa"}],"neutron/agent/common/resource_processing_queue.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"053cf3fcfc6dd3de15d4bb4f78c5edd7ea795fd0","unresolved":true,"context_lines":[{"line_number":181,"context_line":"        updates stop bubbling to the front of the queue."},{"line_number":182,"context_line":"        \"\"\""},{"line_number":183,"context_line":"        next_update \u003d None"},{"line_number":184,"context_line":"        #next_update \u003d self._queue.get()"},{"line_number":185,"context_line":"        while not next_update:"},{"line_number":186,"context_line":"            try:"},{"line_number":187,"context_line":"                next_update \u003d self._queue.get(block\u003dFalse, timeout\u003d5)"},{"line_number":188,"context_line":"                #next_update \u003d self._queue.get()"},{"line_number":189,"context_line":"            except queue.Empty:"},{"line_number":190,"context_line":"                if not self._run:"},{"line_number":191,"context_line":"                    yield None, None"},{"line_number":192,"context_line":"                pass"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        with ExclusiveResourceProcessor(next_update.id) as rp:"},{"line_number":195,"context_line":"            # Queue the update whether this worker is the primary or not."}],"source_content_type":"text/x-python","patch_set":1,"id":"aad16206_7fee9c67","line":192,"range":{"start_line":184,"start_character":2,"end_line":192,"end_character":20},"updated":"2025-11-07 08:33:33.000000000","message":"I think this is unnecessary. I\u0027m removing it now, that was an old test","commit_id":"056bacb0610231e1ce738e4e1daf30804a5679aa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"686dd4cfd9a8c9fae472255a25ecea54e3028532","unresolved":true,"context_lines":[{"line_number":181,"context_line":"        updates stop bubbling to the front of the queue."},{"line_number":182,"context_line":"        \"\"\""},{"line_number":183,"context_line":"        next_update \u003d None"},{"line_number":184,"context_line":"        #next_update \u003d self._queue.get()"},{"line_number":185,"context_line":"        while not next_update:"},{"line_number":186,"context_line":"            try:"},{"line_number":187,"context_line":"                next_update \u003d self._queue.get(block\u003dFalse, timeout\u003d5)"},{"line_number":188,"context_line":"                #next_update \u003d self._queue.get()"},{"line_number":189,"context_line":"            except queue.Empty:"},{"line_number":190,"context_line":"                if not self._run:"},{"line_number":191,"context_line":"                    yield None, None"},{"line_number":192,"context_line":"                pass"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"        with ExclusiveResourceProcessor(next_update.id) as rp:"},{"line_number":195,"context_line":"            # Queue the update whether this worker is the primary or not."}],"source_content_type":"text/x-python","patch_set":1,"id":"c587a891_fcbd1e49","line":192,"range":{"start_line":184,"start_character":2,"end_line":192,"end_character":20},"in_reply_to":"aad16206_7fee9c67","updated":"2025-11-10 20:27:45.000000000","message":"At startup effectively this was an endless loop for dhcp and l3 agent, so I removed the loop in 963386\n(https://review.opendev.org/c/openstack/neutron/+/963386/4/neutron/agent/common/resource_processing_queue.py#183)","commit_id":"056bacb0610231e1ce738e4e1daf30804a5679aa"}],"neutron/agent/dhcp/agent.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"053cf3fcfc6dd3de15d4bb4f78c5edd7ea795fd0","unresolved":true,"context_lines":[{"line_number":150,"context_line":"        self._running \u003d False"},{"line_number":151,"context_line":"        super().stop()"},{"line_number":152,"context_line":"        #self._pool.shutdown()"},{"line_number":153,"context_line":"        self._queue._run \u003d False"},{"line_number":154,"context_line":"        self._process_monitor.stop()"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        self.cache.cleanup_loop.stop()"}],"source_content_type":"text/x-python","patch_set":1,"id":"555f0cec_fd69d64e","line":153,"range":{"start_line":153,"start_character":8,"end_line":153,"end_character":32},"updated":"2025-11-07 08:33:33.000000000","message":"Checking if this is actually needed","commit_id":"056bacb0610231e1ce738e4e1daf30804a5679aa"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"449863d7c807e7a89048683bd44990058f89f369","unresolved":true,"context_lines":[{"line_number":211,"context_line":"            bulk_thread.start()"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    def _reload_bulk_allocations(self):"},{"line_number":214,"context_line":"        while True:"},{"line_number":215,"context_line":"            # No need to lock access to _network_bulk_allocations because"},{"line_number":216,"context_line":"            # greenthreads multi-task co-operatively."},{"line_number":217,"context_line":"            to_reload \u003d self._network_bulk_allocations.keys()"}],"source_content_type":"text/x-python","patch_set":1,"id":"c25cad44_2ad3d573","line":214,"range":{"start_line":214,"start_character":0,"end_line":214,"end_character":19},"updated":"2025-11-07 16:32:44.000000000","message":"we have to add the conditions back to these loops","commit_id":"056bacb0610231e1ce738e4e1daf30804a5679aa"}],"neutron/agent/linux/external_process.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"449863d7c807e7a89048683bd44990058f89f369","unresolved":true,"context_lines":[{"line_number":120,"context_line":"            stdout, self.rw_proc, self.rw_manager \u003d ip_wrapper.netns.execute("},{"line_number":121,"context_line":"                cmd, addl_env\u003dself.cmd_addl_env,"},{"line_number":122,"context_line":"                run_as_root\u003dself.run_as_root)"},{"line_number":123,"context_line":"            LOG.debug(\u0027Rottwrap process pid (%s) stdout: %s\u0027,"},{"line_number":124,"context_line":"                      self.rw_proc.pid, stdout)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"            post_cmd_callback \u003d (post_cmd_callback or"},{"line_number":127,"context_line":"                                 self.default_post_cmd_callback)"}],"source_content_type":"text/x-python","patch_set":1,"id":"09a19066_8b6da945","line":124,"range":{"start_line":123,"start_character":12,"end_line":124,"end_character":47},"updated":"2025-11-07 16:32:44.000000000","message":"It can be removed finally, though have to convince pylint to not complain about unused vars","commit_id":"056bacb0610231e1ce738e4e1daf30804a5679aa"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"053cf3fcfc6dd3de15d4bb4f78c5edd7ea795fd0","unresolved":true,"context_lines":[{"line_number":335,"context_line":"        while self._monitor_processes and not self._stopping_event.is_set():"},{"line_number":336,"context_line":"            #time.sleep(self._config.AGENT.check_child_processes_interval)"},{"line_number":337,"context_line":"            if self._stopping_event.wait("},{"line_number":338,"context_line":"                    #timeout\u003dself._config.AGENT.check_child_processes_interval):"},{"line_number":339,"context_line":"                    timeout\u003d1):"},{"line_number":340,"context_line":"                break"},{"line_number":341,"context_line":"            check_thread \u003d threading.Thread(target\u003dself._check_child_processes)"}],"source_content_type":"text/x-python","patch_set":1,"id":"854bdc03_0b36869f","line":338,"range":{"start_line":338,"start_character":48,"end_line":338,"end_character":78},"updated":"2025-11-07 08:33:33.000000000","message":"It is needed to have this value as low as possible, in order to stop faster\nOr find something better","commit_id":"056bacb0610231e1ce738e4e1daf30804a5679aa"}]}
