)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"9fe66cda60d510fcee80e75b943afbbbdd987754","unresolved":true,"context_lines":[{"line_number":9,"context_line":"If the router port was created during this run, some init steps can be"},{"line_number":10,"context_line":"skipped as they should never result in any changes for new devices."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #2043558"},{"line_number":13,"context_line":"Change-Id: I176b9d16adf668e91d19c56386abdfac57c7d783"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"d16fa774_a38c62dc","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":20},"updated":"2025-02-02 14:09:14.000000000","message":"The description of this bug reminds me of another one https://bugs.launchpad.net/neutron/+bug/1813787\nand we had a patch not merged https://review.opendev.org/c/openstack/neutron/+/633871","commit_id":"860532caf631ef1ed9fc2834f9976dba93cc0fbd"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"0955e76c7f2a5f7f49a4b5692d62deedcf6bdf96","unresolved":false,"context_lines":[{"line_number":9,"context_line":"If the router port was created during this run, some init steps can be"},{"line_number":10,"context_line":"skipped as they should never result in any changes for new devices."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #2043558"},{"line_number":13,"context_line":"Change-Id: I176b9d16adf668e91d19c56386abdfac57c7d783"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"49d1e494_d644e950","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":20},"in_reply_to":"28f60eb3_2a6f5aff","updated":"2025-02-14 02:04:27.000000000","message":"Theoretically, this code can only reduce the probability of the phenomenon mentioned （\"increase the time it takes for VMs to become reachable.\"）in the bug to a certain extent, and it does not fundamentally solve the problem. Removing some additional command-line calls cannot solve the issue of the time required when there are a large number of ports, and the router needs to handle more routes, floating IPs, etc. Therefore, fundamentally speaking, during the startup process of the virtual machine, it is still better to wait until the DVR local router finishes its processing.","commit_id":"860532caf631ef1ed9fc2834f9976dba93cc0fbd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b342e77153fdd461ca2c3831efb5d5f97fe9d301","unresolved":false,"context_lines":[{"line_number":9,"context_line":"If the router port was created during this run, some init steps can be"},{"line_number":10,"context_line":"skipped as they should never result in any changes for new devices."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #2043558"},{"line_number":13,"context_line":"Change-Id: I176b9d16adf668e91d19c56386abdfac57c7d783"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"92fdfd95_a17fcda5","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":20},"in_reply_to":"49d1e494_d644e950","updated":"2025-02-14 17:06:56.000000000","message":"Yes, I think this can maybe help on an l3-agent restart when a node is rebooted perhaps. We have no performance numbers to say how much it helps at the moment.","commit_id":"860532caf631ef1ed9fc2834f9976dba93cc0fbd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94ffc8d744da292dd9a95726539eab02a1983ee2","unresolved":false,"context_lines":[{"line_number":9,"context_line":"If the router port was created during this run, some init steps can be"},{"line_number":10,"context_line":"skipped as they should never result in any changes for new devices."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug: #2043558"},{"line_number":13,"context_line":"Change-Id: I176b9d16adf668e91d19c56386abdfac57c7d783"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"28f60eb3_2a6f5aff","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":20},"in_reply_to":"d16fa774_a38c62dc","updated":"2025-02-04 21:24:34.000000000","message":"If someone wants to revive that patch that\u0027s fine, doesn\u0027t look exactly the same as this one.","commit_id":"860532caf631ef1ed9fc2834f9976dba93cc0fbd"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"c29ed71a29a97c8458c0e5df2f66b6adc9c982f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"7bf1bcf3_bc978491","updated":"2023-11-09 22:40:43.000000000","message":"One problem is there are more than just this single code path to plug(), they would have all have to be changed. Also is there a bug? I\u0027ll try and think if there is another way to do this.","commit_id":"96856418518b7dd7db96dc9afe4b854df6c947be"},{"author":{"_account_id":35825,"name":"Adam Oswick","email":"adam@adamoswick.co.uk","username":"adamoswick","status":"GoDaddy"},"change_message_id":"2717e29c02e33104fff63a346b92dc3a3f4cef72","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"079305b8_78701d23","updated":"2023-11-09 18:36:45.000000000","message":"This should reduce the time taken for the agent to setup routers (particularly those with a lot of subnets attached). In a test environment with 100 subnets, it reduced the total router update runtime by between 15% and 20%.\n\nThis change also assumes that the dynamic ip replacement code added in I7e1e5d6c1fa938918aac3fb63888d20ff4088ba7 (bug 1627902) is no longer required as that would no longer run after an interface has just been created. Assuming that code isn\u0027t needed anymore, I can remove that as a part of this change or follow up with another.","commit_id":"96856418518b7dd7db96dc9afe4b854df6c947be"},{"author":{"_account_id":35825,"name":"Adam Oswick","email":"adam@adamoswick.co.uk","username":"adamoswick","status":"GoDaddy"},"change_message_id":"702adb37c869592b82f13402e4260f6e35aa9a8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6565211c_188e766f","in_reply_to":"7bf1bcf3_bc978491","updated":"2023-11-15 09:56:00.000000000","message":"Created https://bugs.launchpad.net/neutron/+bug/2043558 to track this.\n\nI am probably missing something here but why would other code paths need to be changed? My understanding is that only this code path is responsible for creating new routers. Other code paths simply perform updates meaning their functionality should remain the same.","commit_id":"96856418518b7dd7db96dc9afe4b854df6c947be"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"378e27964ca8ed1c33b7ff42eabdec0b9bdce70c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d17658f7_e5d815e3","updated":"2025-02-01 23:22:10.000000000","message":"I was just going through old bugs and fixes, will push an update for this since it\u0027s been idle for a while.","commit_id":"b780cf6a7f936cced132ee3e7fbe471324c2bb5f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0d909ca1fff6d5a215253199aaca47312ba55b2b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c4505fef_6c0f4e8c","updated":"2024-02-21 17:34:06.000000000","message":"Please add a test case showing that the redundant commands are not executed.\n\n-1 for the missing test case and variable name change suggested; the other (long) comment is a discussion point that doesn\u0027t block the patch.","commit_id":"b780cf6a7f936cced132ee3e7fbe471324c2bb5f"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"f5638f04378351eeb46ed44489cd634e074d64f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"d5f4f5fe_666a0e76","updated":"2025-02-02 14:07:38.000000000","message":"Change make sense to me, but I wonder how much benefit this change can bring?","commit_id":"860532caf631ef1ed9fc2834f9976dba93cc0fbd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94ffc8d744da292dd9a95726539eab02a1983ee2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"053ec1a2_b88ae89f","in_reply_to":"d5f4f5fe_666a0e76","updated":"2025-02-04 21:24:34.000000000","message":"Right, it\u0027s only clear what the calls are, not how much improvement. I\u0027m not sure if Adam initially had that information.","commit_id":"860532caf631ef1ed9fc2834f9976dba93cc0fbd"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"4c283296524d12030e938d3110cd037911c00ebd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0f12548a_8f2d1482","updated":"2025-02-05 12:11:16.000000000","message":"recheck\nlooks ok, thanks. tempest timeout is not related the tests are passed","commit_id":"1bcd147061a3db5b391e6019fb912fec453fd1ea"}],"neutron/agent/l3/router_info.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0d909ca1fff6d5a215253199aaca47312ba55b2b","unresolved":true,"context_lines":[{"line_number":549,"context_line":"                                interface_name, prefix, mtu\u003dNone):"},{"line_number":550,"context_line":"        LOG.debug(\"adding internal network: prefix(%s), port(%s)\","},{"line_number":551,"context_line":"                  prefix, port_id)"},{"line_number":552,"context_line":"        new_device \u003d self.driver.plug("},{"line_number":553,"context_line":"            network_id, port_id, interface_name, mac_address,"},{"line_number":554,"context_line":"            namespace\u003dns_name, prefix\u003dprefix, mtu\u003dmtu)"},{"line_number":555,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"076e95b2_3e57bf03","line":552,"updated":"2024-02-21 17:34:06.000000000","message":"(No action required) the fact that l3 agent even calls to .plug() seems wrong to me since it\u0027s not part of the public interface for neutron-lib:LinuxInterfaceDriver. But I understand it\u0027s not something you should deal with here, just mentioning it here for other reviewers and to perhaps start a discussion over the public interface breakage that seems to \u0027ve become normalized in the code. (In my mind, neutron-lib interface should be updated to reflect reality - plug() is the entrypoint users rely on.)\n\n(For context) The reason why I\u0027m even looking at it is because in case some interface_driver is used that does not inherit from neutron.agent.linux.LinuxInterfaceDriver, and if that other code does not return something that is False in boolean context, then this code assumption potentially breaks this scenario.\n\nNow, I realize that interface_driver interface while is pluggable, is probably not really used with anything but in-tree interface drivers. But if so, then maybe the very existence of the base class in neutron-lib is a mistake, and neutron should not even pretend it supports out-of-tree implementations.","commit_id":"b780cf6a7f936cced132ee3e7fbe471324c2bb5f"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0d909ca1fff6d5a215253199aaca47312ba55b2b","unresolved":true,"context_lines":[{"line_number":556,"context_line":"        ip_cidrs \u003d common_utils.fixed_ip_cidrs(fixed_ips)"},{"line_number":557,"context_line":"        self.driver.init_router_port("},{"line_number":558,"context_line":"            interface_name, ip_cidrs, namespace\u003dns_name,"},{"line_number":559,"context_line":"            new_device\u003dnew_device)"},{"line_number":560,"context_line":"        for fixed_ip in fixed_ips:"},{"line_number":561,"context_line":"            ip_lib.send_ip_addr_adv_notif(ns_name,"},{"line_number":562,"context_line":"                                          interface_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"6c6ae08e_43a6fa75","line":559,"updated":"2024-02-21 17:34:06.000000000","message":"since it\u0027s boolean, I\u0027d suggest to use a more explicit name, e.g. `is_new_device`, because right now one may expect from the name that the object passed is an actual device representation.","commit_id":"b780cf6a7f936cced132ee3e7fbe471324c2bb5f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"378e27964ca8ed1c33b7ff42eabdec0b9bdce70c","unresolved":false,"context_lines":[{"line_number":556,"context_line":"        ip_cidrs \u003d common_utils.fixed_ip_cidrs(fixed_ips)"},{"line_number":557,"context_line":"        self.driver.init_router_port("},{"line_number":558,"context_line":"            interface_name, ip_cidrs, namespace\u003dns_name,"},{"line_number":559,"context_line":"            new_device\u003dnew_device)"},{"line_number":560,"context_line":"        for fixed_ip in fixed_ips:"},{"line_number":561,"context_line":"            ip_lib.send_ip_addr_adv_notif(ns_name,"},{"line_number":562,"context_line":"                                          interface_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1c721813_03a688fe","line":559,"in_reply_to":"6c6ae08e_43a6fa75","updated":"2025-02-01 23:22:10.000000000","message":"Done","commit_id":"b780cf6a7f936cced132ee3e7fbe471324c2bb5f"}],"neutron/agent/linux/interface.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94ffc8d744da292dd9a95726539eab02a1983ee2","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        clean_connections: Boolean to indicate if we should cleanup connections"},{"line_number":99,"context_line":"          associated to removed ips"},{"line_number":100,"context_line":"        is_new_device: Boolean to indicate if the device existed prior to this"},{"line_number":101,"context_line":"          router update"},{"line_number":102,"context_line":"        \"\"\""},{"line_number":103,"context_line":"        preserve_ips \u003d preserve_ips or []"},{"line_number":104,"context_line":"        device \u003d ip_lib.IPDevice(device_name, namespace\u003dnamespace)"}],"source_content_type":"text/x-python","patch_set":3,"id":"feea4392_3d74104d","line":101,"range":{"start_line":101,"start_character":10,"end_line":101,"end_character":23},"updated":"2025-02-04 21:24:34.000000000","message":"s/call (to be more generic)","commit_id":"860532caf631ef1ed9fc2834f9976dba93cc0fbd"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"94ffc8d744da292dd9a95726539eab02a1983ee2","unresolved":false,"context_lines":[{"line_number":171,"context_line":"          associated to removed ips"},{"line_number":172,"context_line":"        extra_subnets: An iterable of cidrs to add as routes without address"},{"line_number":173,"context_line":"        is_new_device: Boolean to indicate if the device existed prior to this"},{"line_number":174,"context_line":"          router update"},{"line_number":175,"context_line":"        \"\"\""},{"line_number":176,"context_line":"        LOG.debug(\"init_router_port: device_name(%s), namespace(%s)\","},{"line_number":177,"context_line":"                  device_name, namespace)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5699d279_525abc54","line":174,"range":{"start_line":174,"start_character":10,"end_line":174,"end_character":23},"updated":"2025-02-04 21:24:34.000000000","message":"same nit as above","commit_id":"860532caf631ef1ed9fc2834f9976dba93cc0fbd"}]}
