)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"db49760f2cb4d37bfc51c0b958d271d215b86081","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"50cc36b3_5b1c7f84","updated":"2026-08-11 21:18:18.000000000","message":"Thanks for the patch, just two questions:\n\n1) Is there a bug associated with it? That would be necessary if we want to backport this to older releases.\n2) Can you add a unit test at a minimum that would cover this case?\n\nThanks, Brian","commit_id":"821c2e9deb09a0dd9f7400785b9ae60d034fafa5"},{"author":{"_account_id":38925,"name":"Roman Hros","email":"roman.hros@dnation.cloud","username":"rhros"},"change_message_id":"ea4d04b3f6cc81252444299dfa5f61b49a8e51c2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"edd86376_9ed6cd5a","updated":"2026-08-11 08:30:45.000000000","message":"There are two \"similar\" cases:\n- \"neutron:security_group_ids\" in the external_ids field of lsp has an extra security group in the list\n  - maintanace task tries to detach lsp from the port_group but fails with \"Port group ... does not exist\" because port group is already gone\n  - This is fixed by this patch\n\n- \"neutron:security_group_ids\" in the external_ids field of lsp does not contain the correct security group\n  - maintanace task tries to attach lsp to the port_group but fails with \"Port group ... does not exist\"\n  - this is stranger error, because port group should be already there\n  - we do not have good solution yet, ideas are:\n    - ignore and do not fail\n    - change revision number so next run of maintenance task can correctly create ovn port_group\n\nWhat do you think, dear reviewers?","commit_id":"821c2e9deb09a0dd9f7400785b9ae60d034fafa5"},{"author":{"_account_id":38925,"name":"Roman Hros","email":"roman.hros@dnation.cloud","username":"rhros"},"change_message_id":"82b08ccdee7a1815fd83ec31f396f84937550dbe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"572647dc_1113bcca","in_reply_to":"50cc36b3_5b1c7f84","updated":"2026-08-12 07:00:21.000000000","message":"Thanks for the review:\n1. I couldn\u0027t find existing bug. We are just observing it in our Openstack deployment and I am not sure why it happens. Probably https://docs.openstack.org/neutron/latest/contributor/internals/ovn/database_consistency.html is not 100% bulletproof. We observe also other way around issue with attaching ports to missing port group, what I described in https://review.opendev.org/c/openstack/neutron/+/1000412/comments/edd86376_9ed6cd5a and I have not good solution for that.\nMaybe these two are related:\n  - https://bugs.launchpad.net/neutron/+bug/2084977\n  - https://bugs.launchpad.net/neutron/+bug/2008943\n2. Yes, I will do that","commit_id":"821c2e9deb09a0dd9f7400785b9ae60d034fafa5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8ca10525a93f7add6b4cd32e0e55f6f8027de1ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b670a83f_467a5037","in_reply_to":"572647dc_1113bcca","updated":"2026-08-13 14:20:23.000000000","message":"Thanks for adding the test and the bug references.\n\n\u003e Maybe these two are related:\n\u003e\n\u003e    https://bugs.launchpad.net/neutron/+bug/2084977\n\u003e    https://bugs.launchpad.net/neutron/+bug/2008943\n\nSince you are seeing this in production, we should add a bug reference so we can backport it to older releases. I would choose the first one and put this in the commit message above the Change-Id line:\n\nRelated-bug: #2084977\n\nThen once it merges we can get it to stable/2026.1, 2025.2, 2025.1 and unmaintained/2024.1","commit_id":"821c2e9deb09a0dd9f7400785b9ae60d034fafa5"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8ca10525a93f7add6b4cd32e0e55f6f8027de1ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7bc12064_fc66d0f2","updated":"2026-08-13 14:20:23.000000000","message":"Soft -1 to update with the bug info.","commit_id":"63070d629abfd34a9e3b46e5abce703394928147"},{"author":{"_account_id":38925,"name":"Roman Hros","email":"roman.hros@dnation.cloud","username":"rhros"},"change_message_id":"969defab573f865160335802f6e0a4b71c55917f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7b5f8e74_8bc9567c","updated":"2026-08-14 05:17:45.000000000","message":"recheck - failed scenario NovaServers.boot_and_delete_server","commit_id":"7be9b9486b5b25a33d3f3dd982c4d7dd41507298"}],"neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/ovsdb/test_ovn_client.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d0c22c24b8718d4b6380cd391b9b7240293a1f59","unresolved":false,"context_lines":[{"line_number":897,"context_line":"        self.nb_idl.unset_lswitch_port_to_virtual_type.assert_not_called()"},{"line_number":898,"context_line":""},{"line_number":899,"context_line":"    def test_update_port_detached_port_group_existence_check(self):"},{"line_number":900,"context_line":"        \"\"\"Verify update_port ignores missing Port Groups when detaching ports.\"\"\""},{"line_number":901,"context_line":"        port \u003d {\u0027id\u0027: \u0027t-port\u0027, \u0027name\u0027: \u0027p\u0027, \u0027admin_state_up\u0027: True,"},{"line_number":902,"context_line":"                \u0027device_owner\u0027: \u0027compute:nova\u0027, \u0027security_groups\u0027: [\u0027sg-1\u0027]}"},{"line_number":903,"context_line":"        self.nb_idl.lookup.return_value \u003d mock.Mock("}],"source_content_type":"text/x-python","patch_set":2,"id":"732fdc16_a99905e3","line":900,"updated":"2026-08-12 15:41:42.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"ad01dda4ee996b6836e087658e4c580de7752acc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d0c22c24b8718d4b6380cd391b9b7240293a1f59","unresolved":false,"context_lines":[{"line_number":906,"context_line":"        )"},{"line_number":907,"context_line":""},{"line_number":908,"context_line":"        for pg_exists in (True, False):"},{"line_number":909,"context_line":"            self.nb_idl.get_port_group.return_value \u003d mock.Mock() if pg_exists else None"},{"line_number":910,"context_line":"            self.nb_idl.pg_del_ports.reset_mock()"},{"line_number":911,"context_line":""},{"line_number":912,"context_line":"            with mock.patch.object(self.ovn_client, \u0027get_external_ids_from_port\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"32973926_0d1f2db7","line":909,"updated":"2026-08-12 15:41:42.000000000","message":"pep8: E501 line too long (88 \u003e 79 characters)","commit_id":"ad01dda4ee996b6836e087658e4c580de7752acc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d0c22c24b8718d4b6380cd391b9b7240293a1f59","unresolved":false,"context_lines":[{"line_number":909,"context_line":"            self.nb_idl.get_port_group.return_value \u003d mock.Mock() if pg_exists else None"},{"line_number":910,"context_line":"            self.nb_idl.pg_del_ports.reset_mock()"},{"line_number":911,"context_line":""},{"line_number":912,"context_line":"            with mock.patch.object(self.ovn_client, \u0027get_external_ids_from_port\u0027,"},{"line_number":913,"context_line":"                                   return_value\u003d(mock.Mock(), {})), \\"},{"line_number":914,"context_line":"                    mock.patch.object(self.ovn_client, \u0027update_port_dhcp_options\u0027,"},{"line_number":915,"context_line":"                                      return_value\u003d(None, None)), \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"cf2ebeb4_a5b5b6ea","line":912,"updated":"2026-08-12 15:41:42.000000000","message":"pep8: E501 line too long (81 \u003e 79 characters)","commit_id":"ad01dda4ee996b6836e087658e4c580de7752acc"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d0c22c24b8718d4b6380cd391b9b7240293a1f59","unresolved":false,"context_lines":[{"line_number":911,"context_line":""},{"line_number":912,"context_line":"            with mock.patch.object(self.ovn_client, \u0027get_external_ids_from_port\u0027,"},{"line_number":913,"context_line":"                                   return_value\u003d(mock.Mock(), {})), \\"},{"line_number":914,"context_line":"                    mock.patch.object(self.ovn_client, \u0027update_port_dhcp_options\u0027,"},{"line_number":915,"context_line":"                                      return_value\u003d(None, None)), \\"},{"line_number":916,"context_line":"                    mock.patch.object(self.nb_idl, \u0027transaction\u0027) as mock_txn:"},{"line_number":917,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"6a535aea_afd3d3a4","line":914,"updated":"2026-08-12 15:41:42.000000000","message":"pep8: E501 line too long (82 \u003e 79 characters)","commit_id":"ad01dda4ee996b6836e087658e4c580de7752acc"}]}
