)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"bf98b80fe02b39b33aab8cbc8b2c4c8e02a89a2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"32ef2ba0_8546fb8b","updated":"2025-02-21 13:50:40.000000000","message":"recheck","commit_id":"3f68b1a0be6ae6dd024584da9aff690a6743ed5c"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"60f27f2aeab52470a30fdfc2606e7b7f30364b46","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d5832692_3e26c99c","updated":"2025-02-27 18:27:00.000000000","message":"recheck unrelated","commit_id":"3f68b1a0be6ae6dd024584da9aff690a6743ed5c"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f55677bf94b58317f47e6fbb0826634f4f439519","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"99036895_7c2d5f23","updated":"2025-03-09 09:24:03.000000000","message":"recheck test_create_list_show_delete_interfaces_by_network_port","commit_id":"d33c9554d4f9594e553056ebdddc61ce257cc183"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"87f6dad699fd6ca347681089c7244e89ada0960b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"975a312c_34994d2e","updated":"2025-03-07 07:19:14.000000000","message":"recheck test_resize_server_revert_with_volume_attached","commit_id":"d33c9554d4f9594e553056ebdddc61ce257cc183"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"b448b0eccda7e57043fa84f0779da810e2c63f49","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9872e9ea_a3fad468","updated":"2025-03-06 16:41:32.000000000","message":"recheck test_shelve_unshelve_server","commit_id":"d33c9554d4f9594e553056ebdddc61ce257cc183"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"021283675c5656396aeb49d4616a7553710f3e84","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"f43e2b4e_60f70c31","updated":"2025-06-13 06:58:11.000000000","message":"thanks","commit_id":"092412cb612963e7dcf2178a1493d83337586890"}],"neutron/services/trunk/drivers/openvswitch/agent/ovsdb_handler.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9051ec7439d2e2e33c03337a823d15b740166a8b","unresolved":true,"context_lines":[{"line_number":134,"context_line":"            self, resource, event, trigger, payload):"},{"line_number":135,"context_line":"        \"\"\"Process added and removed port events coming from OVSDB monitor.\"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        executor \u003d futurist.ThreadPoolExecutor()"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        ovsdb_events \u003d payload.latest_state"},{"line_number":140,"context_line":"        for port_event in ovsdb_events[\u0027added\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"657d27da_ac9bc0ea","line":137,"updated":"2025-03-12 19:14:39.000000000","message":"So I think if we\u0027re going to use this, it should be used under a context manager (i.e. \u0027with\u0027) as was done in the dhcp-agent code (and others I\u0027ve found via codesearch). That way it\u0027s resources are cleaned-up. It could also specify max_workers, I\u0027m not sure what the default is but think it\u0027s unlimited (0).","commit_id":"d33c9554d4f9594e553056ebdddc61ce257cc183"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"7273f49713c23c4130692d4c5f21018c4f87bb98","unresolved":true,"context_lines":[{"line_number":134,"context_line":"            self, resource, event, trigger, payload):"},{"line_number":135,"context_line":"        \"\"\"Process added and removed port events coming from OVSDB monitor.\"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        executor \u003d futurist.ThreadPoolExecutor()"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        ovsdb_events \u003d payload.latest_state"},{"line_number":140,"context_line":"        for port_event in ovsdb_events[\u0027added\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"6fe669a4_f4eea86d","line":137,"in_reply_to":"0b509523_b0ece9ff","updated":"2025-04-01 09:42:59.000000000","message":"actuly if your going to use this i would advice creating the treadpool once as a module level  like this\n\nhttps://review.opendev.org/c/openstack/nova/+/922497/5/nova/utils.py#89\n\nthat will allow you ot have a common helper function like io_pool_execute\n\nand enable you to limit the total number of thread via config if desired.\n\nnova generally avoid naked spawn/spawn_n calls and instead uses utli funcitons\n\nhttps://github.com/openstack/nova/blob/master/nova/utils.py#L645-L693\n\nso that we did not have to import eventlet everywhere spwan was neeed\nthat also allowed use to do thingk like proprlly pass the context objects to the executor. if you do that replacement first it will allow you to then swap the executor your using in one place.\n\nor as i have done in the nova patches \n\nhttps://review.opendev.org/c/openstack/nova/+/905287/9/nova/image/glance.py\n\nyou can just directlly call io_pool_execute","commit_id":"d33c9554d4f9594e553056ebdddc61ce257cc183"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7b206e035103a49dd3b9abeda9bb110e5d1b7c8b","unresolved":true,"context_lines":[{"line_number":134,"context_line":"            self, resource, event, trigger, payload):"},{"line_number":135,"context_line":"        \"\"\"Process added and removed port events coming from OVSDB monitor.\"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        executor \u003d futurist.ThreadPoolExecutor()"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        ovsdb_events \u003d payload.latest_state"},{"line_number":140,"context_line":"        for port_event in ovsdb_events[\u0027added\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"0b509523_b0ece9ff","line":137,"in_reply_to":"657d27da_ac9bc0ea","updated":"2025-03-18 13:07:51.000000000","message":"If we do that, we change the current behavior and it\u0027s what I wanted to limit.\n\nRegarding the number of threads, the doc is mentioning something around the number of cores available on host divided by 2 but I don\u0027t have the formula here.","commit_id":"d33c9554d4f9594e553056ebdddc61ce257cc183"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"9fc5dcfcb45871498fd997a4285e626abb540232","unresolved":true,"context_lines":[{"line_number":134,"context_line":"            self, resource, event, trigger, payload):"},{"line_number":135,"context_line":"        \"\"\"Process added and removed port events coming from OVSDB monitor.\"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        executor \u003d futurist.ThreadPoolExecutor()"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        ovsdb_events \u003d payload.latest_state"},{"line_number":140,"context_line":"        for port_event in ovsdb_events[\u0027added\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"fde0fe02_fd1488b8","line":137,"in_reply_to":"6fe669a4_f4eea86d","updated":"2025-04-01 15:15:46.000000000","message":"Thank you Sean, it\u0027s certainly something I can do, we perhaps have to discuss that with the team, to have a clear vision of what we would like to do to I hope mqke progress.","commit_id":"d33c9554d4f9594e553056ebdddc61ce257cc183"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"be8eab20483abf04b2b5aa014ecaa50ed8ca2cb5","unresolved":true,"context_lines":[{"line_number":144,"context_line":"                # As there is active waiting for port to appear, it\u0027s handled"},{"line_number":145,"context_line":"                # in a separate greenthread."},{"line_number":146,"context_line":"                # NOTE: port_name is equal to bridge_name at this point."},{"line_number":147,"context_line":"                executor.submit(self.handle_trunk_add, port_name)"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        for port_event in ovsdb_events[\u0027removed\u0027]:"},{"line_number":150,"context_line":"            bridge_name \u003d port_event[\u0027external_ids\u0027].get(\u0027bridge_name\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3cadbfc9_5c7e5ad8","line":147,"updated":"2025-04-28 13:38:17.000000000","message":"Please use a ctx manager like here: https://review.opendev.org/c/openstack/neutron/+/947211/3/neutron/agent/dhcp/agent.py#318","commit_id":"9835af0661bf4dd1baeab33ba9abc2a9ff39663a"}]}
