)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"9c8535f91049afa0fb01d29799f5a59c39361770","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     yatinkarel \u003cykarel@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-05-15 13:58:51 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add if_exists to lrp_set_options"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Required for handling the cases where set_options"},{"line_number":10,"context_line":"is called on non-existing logical router port."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"8df0270c_1edb3aef","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":13},"updated":"2024-05-15 14:49:48.000000000","message":"I\u0027m not sure if this is the right way. If there is a race condition between two requests I think it is legitimate to fail updating LRP that no longer exists. Perhaps we should not return 50x HTTP code but perhaps 404 but I think silently ignoring the port is now gone can be tricky. Let\u0027s discuss :)","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"202617e2834b5c18636a35d062c516fbdea3293a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     yatinkarel \u003cykarel@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-05-15 13:58:51 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add if_exists to lrp_set_options"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Required for handling the cases where set_options"},{"line_number":10,"context_line":"is called on non-existing logical router port."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ec6a42ef_21af2b59","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":13},"in_reply_to":"43458d78_c5b90db9","updated":"2024-05-16 15:26:30.000000000","message":"Done","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"a83fbf230210d0cc256e8dc15bfc38273b1907b5","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     yatinkarel \u003cykarel@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-05-15 13:58:51 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add if_exists to lrp_set_options"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Required for handling the cases where set_options"},{"line_number":10,"context_line":"is called on non-existing logical router port."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"d2c226e4_ba81deaa","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":13},"in_reply_to":"6c5fc994_7b37151a","updated":"2024-05-16 14:32:47.000000000","message":"Actually it\u0027s not the same lrp being created and updated. This patch just add the option and defaults to False, lrp_set_options only used as part of \"update all connected router ports\"(https://review.opendev.org/c/openstack/neutron/+/919699/4/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py) where we actually need it as one or more router ports out of those could be deleted in meanwhile and it mainly happens when tempest is run with higher concurrency and ovn_emit_need_to_frag\u003dTrue [1] enabled that call on each add/remove_router_interface call. There was a followup fix for missing router[2]\n\n@lucas Yes it was originally noticed in Downstream job, but today i tried to reproduce upstream, many antelope job reproduced the issue[3], with these patches applied issue didn\u0027t appear[4]\n\nI also tried to reproduce in master[5] but it didn\u0027t reproduced as doesn\u0027t fail even after the missing lrp[7], and checking further found it\u0027s likely happening since the introduction of router flavors[6] but need to dig more if it\u0027s that or something else as behavior doesn\u0027t look good as exception raised for another lrp(as part of \"update all connected router ports\") but handling is done for the requested one.\n\n[1] https://github.com/openstack/neutron/commit/0725533a6fa6a42d361e518b027f69da8e1e1ec5\n[2] https://github.com/openstack/neutron/commit/b2421b01e5bc1269458b421643c13b620cdaccaf\n[3] https://zuul.opendev.org/t/openstack/buildset/be457d91c01745d290de89276cfd072f\n[4] https://zuul.opendev.org/t/openstack/buildset/15d6f9b731ff4c24b0c1a6d0aa1ff7a9\n[5] https://zuul.opendev.org/t/openstack/buildset/d3a60fec404843a88f23d306c3ffd7f5\n[6] https://opendev.org/openstack/neutron/commit/49366ecada529a929712ded7681d797c75b386cb\n[7] https://e038d125fbbf1b68c10a-fd1d23de4951783ce4905cf96230b70e.ssl.cf1.rackcdn.com/919785/1/check/devstack-platform-centos-9-stream/e562129/controller/logs/screen-q-svc.txt","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3671faf70cb161db02c6a753994d55cb2f44a659","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     yatinkarel \u003cykarel@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-05-15 13:58:51 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add if_exists to lrp_set_options"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Required for handling the cases where set_options"},{"line_number":10,"context_line":"is called on non-existing logical router port."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"6c5fc994_7b37151a","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":13},"in_reply_to":"8df0270c_1edb3aef","updated":"2024-05-16 09:36:29.000000000","message":"I agree, it does seems counter-intuitive to not fail to set an option on a port that does not exist. The LP talks about some downstream jobs, perhaps we should take a look at how those jobs are issuing these requests first.","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"13bfa0495b76a5c5bdbd34ea899a0291a049bdbe","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     yatinkarel \u003cykarel@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-05-15 13:58:51 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add if_exists to lrp_set_options"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Required for handling the cases where set_options"},{"line_number":10,"context_line":"is called on non-existing logical router port."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"43458d78_c5b90db9","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":13},"in_reply_to":"d2c226e4_ba81deaa","updated":"2024-05-16 14:54:12.000000000","message":"Thanks Yatin.\n\nFor other reviewers, we had a discussion about this behavior offline and, this option will only be used when we update the LRP as part of a batch (a.k.a update all ports of a router) and during this update a port can be deleted but we should not fail the whole transaction if one port goes away.","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8dea53969494dc6945adf94d2f8e3a2d9c08b79c","unresolved":true,"context_lines":[{"line_number":7,"context_line":"Add if_exists to lrp_set_options"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Required for handling the cases where set_options"},{"line_number":10,"context_line":"is called on non-existing logical router port."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Bug: #2065701"},{"line_number":13,"context_line":"Related-Bug: #2060163"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"84ae99ac_ce3dd4b7","line":10,"updated":"2024-05-16 15:01:53.000000000","message":"I think we should also mention here that the parameter is available in all OptionsSet command classes, just for references.","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"202617e2834b5c18636a35d062c516fbdea3293a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add if_exists to lrp_set_options"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Required for handling the cases where set_options"},{"line_number":10,"context_line":"is called on non-existing logical router port."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Partial-Bug: #2065701"},{"line_number":13,"context_line":"Related-Bug: #2060163"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"869e9574_16d25f58","line":10,"in_reply_to":"84ae99ac_ce3dd4b7","updated":"2024-05-16 15:26:30.000000000","message":"Done","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"13bfa0495b76a5c5bdbd34ea899a0291a049bdbe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"15eca721_27f8c9a0","updated":"2024-05-16 14:54:12.000000000","message":"After discussing","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8dea53969494dc6945adf94d2f8e3a2d9c08b79c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"11265be5_cb4f9046","updated":"2024-05-16 15:01:53.000000000","message":"Thanks Yatin, I\u0027m leaving some comments but overall LGTM - not setting +W to get the feedback, if people disagree I\u0027m fine +W\u0027ing","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"9ba100de2a66bee2468fa640c7c79bed808a44a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f2c440fc_235b1cb1","updated":"2024-05-16 15:24:30.000000000","message":"Thanks!","commit_id":"6bac684e6fec715b0aa36abc886153cb82855b3a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"5304044ed7a594134afbe112503dee31d833c5c8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1f1a9623_7c164dbe","updated":"2024-05-16 15:26:09.000000000","message":"lgtm!","commit_id":"6bac684e6fec715b0aa36abc886153cb82855b3a"}],"ovsdbapp/schema/ovn_northbound/api.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8dea53969494dc6945adf94d2f8e3a2d9c08b79c","unresolved":true,"context_lines":[{"line_number":650,"context_line":"        \"\"\""},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"    @abc.abstractmethod"},{"line_number":653,"context_line":"    def lrp_set_options(self, port, if_exists\u003dFalse, **options):"},{"line_number":654,"context_line":"        \"\"\"Set options related to the type of \u0027port\u0027"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        :param port:      The name or uuid of the port"}],"source_content_type":"text/x-python","patch_set":1,"id":"7fda546a_48b50334","line":653,"range":{"start_line":653,"start_character":36,"end_line":653,"end_character":51},"updated":"2024-05-16 15:01:53.000000000","message":"I understand the parameter will be passed to the Command instance as part of `**options` but I think it would help with readability if it\u0027s passed explicitly.","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"420c93af0faf716782bb2031ca07c8dd91b68808","unresolved":true,"context_lines":[{"line_number":650,"context_line":"        \"\"\""},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"    @abc.abstractmethod"},{"line_number":653,"context_line":"    def lrp_set_options(self, port, if_exists\u003dFalse, **options):"},{"line_number":654,"context_line":"        \"\"\"Set options related to the type of \u0027port\u0027"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        :param port:      The name or uuid of the port"}],"source_content_type":"text/x-python","patch_set":1,"id":"e3a8b2bc_36916148","line":653,"range":{"start_line":653,"start_character":36,"end_line":653,"end_character":51},"in_reply_to":"7fda546a_48b50334","updated":"2024-05-16 15:12:15.000000000","message":"I must have overlooked it\u0027s already there, sorry for the noise 😊","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"9ba100de2a66bee2468fa640c7c79bed808a44a1","unresolved":false,"context_lines":[{"line_number":650,"context_line":"        \"\"\""},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"    @abc.abstractmethod"},{"line_number":653,"context_line":"    def lrp_set_options(self, port, if_exists\u003dFalse, **options):"},{"line_number":654,"context_line":"        \"\"\"Set options related to the type of \u0027port\u0027"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"        :param port:      The name or uuid of the port"}],"source_content_type":"text/x-python","patch_set":1,"id":"f474c020_11a21ed7","line":653,"range":{"start_line":653,"start_character":36,"end_line":653,"end_character":51},"in_reply_to":"e3a8b2bc_36916148","updated":"2024-05-16 15:24:30.000000000","message":"Done","commit_id":"1807cc2c45eabfb5d954c7d9ccdbee180d508f6a"}]}
