)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"e183f743c255b548543bccfb9745cd9a6833be2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f2a7925e_60af9a68","updated":"2023-10-23 14:26:14.000000000","message":"LGTM, but we may want to add a release note.","commit_id":"f727ecebdae5eee867d95bfb07ffb395519dcda8"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"fb42afef1193b96f1aab092467c31c148cdd0f4e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e32590ee_f49a196b","updated":"2023-10-23 14:25:50.000000000","message":"ouch, great catch... i wonder how we never realized in years","commit_id":"f727ecebdae5eee867d95bfb07ffb395519dcda8"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"6a6d46a946823c72065e68105a6f094d4db38332","unresolved":true,"context_lines":[{"line_number":384,"context_line":"            self.sb_synchronizer \u003d ovn_db_sync.OvnSbSynchronizer("},{"line_number":385,"context_line":"                self._plugin,"},{"line_number":386,"context_line":"                self.sb_ovn,"},{"line_number":387,"context_line":"                ovn_conf.get_ovn_neutron_sync_mode(),"},{"line_number":388,"context_line":"                self"},{"line_number":389,"context_line":"            )"},{"line_number":390,"context_line":"            self.sb_synchronizer.sync()"}],"source_content_type":"text/x-python","patch_set":3,"id":"44f7d76b_e64b9dc0","line":387,"updated":"2023-10-31 21:29:55.000000000","message":"nit: you could extract it once and then reuse here and in line 378","commit_id":"165cef40481a85116808a06a37fad3010f687046"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"12160c6325ec6098b56450b8041857a220c5cb7b","unresolved":false,"context_lines":[{"line_number":384,"context_line":"            self.sb_synchronizer \u003d ovn_db_sync.OvnSbSynchronizer("},{"line_number":385,"context_line":"                self._plugin,"},{"line_number":386,"context_line":"                self.sb_ovn,"},{"line_number":387,"context_line":"                ovn_conf.get_ovn_neutron_sync_mode(),"},{"line_number":388,"context_line":"                self"},{"line_number":389,"context_line":"            )"},{"line_number":390,"context_line":"            self.sb_synchronizer.sync()"}],"source_content_type":"text/x-python","patch_set":3,"id":"4ab13716_a13ce1d2","line":387,"in_reply_to":"44f7d76b_e64b9dc0","updated":"2025-07-15 22:10:47.000000000","message":"Done","commit_id":"165cef40481a85116808a06a37fad3010f687046"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"25857e16e285a414ddbd2066cdc6c8e34d79075e","unresolved":true,"context_lines":[{"line_number":1341,"context_line":"        \"\"\""},{"line_number":1342,"context_line":"        if self.mode \u003d\u003d SYNC_MODE_OFF:"},{"line_number":1343,"context_line":"            LOG.debug(\"Neutron sync mode is off\")"},{"line_number":1344,"context_line":"            return"},{"line_number":1345,"context_line":"        LOG.debug(\"Starting OVN-Southbound DB sync process\")"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"        ctx \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":2,"id":"aab75aec_40678c59","line":1344,"updated":"2023-10-23 14:35:04.000000000","message":"Thanks for doing this Lucas, I never noticed this ignored the mode config.\n\nI just have one comment - can you rebase on https://review.opendev.org/c/openstack/neutron/+/890832 ? That change tries to make all the log messages similar, and changes some from debug to warning, etc. I think it should be a quick rebase, and maybe gets more eyes on that change :)","commit_id":"f727ecebdae5eee867d95bfb07ffb395519dcda8"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"97a1982dc4ddc064d5427312a610b9cc4fe85679","unresolved":true,"context_lines":[{"line_number":1341,"context_line":"        \"\"\""},{"line_number":1342,"context_line":"        if self.mode \u003d\u003d SYNC_MODE_OFF:"},{"line_number":1343,"context_line":"            LOG.debug(\"Neutron sync mode is off\")"},{"line_number":1344,"context_line":"            return"},{"line_number":1345,"context_line":"        LOG.debug(\"Starting OVN-Southbound DB sync process\")"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"        ctx \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":2,"id":"b8365a6b_ddb6ab0a","line":1344,"in_reply_to":"aab75aec_40678c59","updated":"2023-10-23 14:37:50.000000000","message":"Hi Brian,\n\nOf course, I will rebase on top of this. Will also add a release note as requested by Harald. Thanks for the review","commit_id":"f727ecebdae5eee867d95bfb07ffb395519dcda8"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c12dc5a0607296a7321ca6a00238d66db0938cae","unresolved":false,"context_lines":[{"line_number":1341,"context_line":"        \"\"\""},{"line_number":1342,"context_line":"        if self.mode \u003d\u003d SYNC_MODE_OFF:"},{"line_number":1343,"context_line":"            LOG.debug(\"Neutron sync mode is off\")"},{"line_number":1344,"context_line":"            return"},{"line_number":1345,"context_line":"        LOG.debug(\"Starting OVN-Southbound DB sync process\")"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"        ctx \u003d context.get_admin_context()"}],"source_content_type":"text/x-python","patch_set":2,"id":"dc3a903d_57c89576","line":1344,"in_reply_to":"b8365a6b_ddb6ab0a","updated":"2023-10-23 15:26:20.000000000","message":"Done","commit_id":"f727ecebdae5eee867d95bfb07ffb395519dcda8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a23c3472c287f117bd467658add861b722e28445","unresolved":true,"context_lines":[{"line_number":1369,"context_line":""},{"line_number":1370,"context_line":"        OvnSbSynchronizer will sync data from OVN_Southbound to neutron. And"},{"line_number":1371,"context_line":"        the synchronization will always be performed, no matter what mode it"},{"line_number":1372,"context_line":"        is."},{"line_number":1373,"context_line":"        \"\"\""},{"line_number":1374,"context_line":"        if self.mode \u003d\u003d SYNC_MODE_OFF:"},{"line_number":1375,"context_line":"            LOG.debug(\"Neutron sync mode is off\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"5cc2781e_1b4b1969","line":1372,"updated":"2023-10-23 18:22:21.000000000","message":"So a comment since this reminded me - is the SB sync always supposed to happen?","commit_id":"165cef40481a85116808a06a37fad3010f687046"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"76cc66ac9e4cf8ce2ae2f9247a496c0b3b174d09","unresolved":true,"context_lines":[{"line_number":1369,"context_line":""},{"line_number":1370,"context_line":"        OvnSbSynchronizer will sync data from OVN_Southbound to neutron. And"},{"line_number":1371,"context_line":"        the synchronization will always be performed, no matter what mode it"},{"line_number":1372,"context_line":"        is."},{"line_number":1373,"context_line":"        \"\"\""},{"line_number":1374,"context_line":"        if self.mode \u003d\u003d SYNC_MODE_OFF:"},{"line_number":1375,"context_line":"            LOG.debug(\"Neutron sync mode is off\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"969c17fd_6fee59b9","line":1372,"in_reply_to":"2bbba4cc_35666d9f","updated":"2023-12-12 21:26:13.000000000","message":"So getting back to this, since default mode is \u0027log\u0027 from what I can tell, adding the below check shouldn\u0027t change existing deployments.\n\nThe only problem I see now is that the config definition only mentions Northbound:\n\n\"The synchronization mode of OVN_Northbound OVSDB with Neutron DB\"\n\nAssuming we don\u0027t want to enable one and not the other, the text will need to be updated.","commit_id":"165cef40481a85116808a06a37fad3010f687046"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a30e235cf3b0d2fd7b357fa7a0245b0d6766e654","unresolved":true,"context_lines":[{"line_number":1369,"context_line":""},{"line_number":1370,"context_line":"        OvnSbSynchronizer will sync data from OVN_Southbound to neutron. And"},{"line_number":1371,"context_line":"        the synchronization will always be performed, no matter what mode it"},{"line_number":1372,"context_line":"        is."},{"line_number":1373,"context_line":"        \"\"\""},{"line_number":1374,"context_line":"        if self.mode \u003d\u003d SYNC_MODE_OFF:"},{"line_number":1375,"context_line":"            LOG.debug(\"Neutron sync mode is off\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a8336c8_ced64253","line":1372,"in_reply_to":"5cc2781e_1b4b1969","updated":"2023-10-24 08:19:14.000000000","message":"That\u0027s a good point. I always assumed that turning it to off would disable all sync from both NB and SB and we learned the hard way that this isn\u0027t the case. There\u0027s a problem affecting a customer [0] which is caused by this sync and we have no way to disable it.\n\nI will investigate more about this docstring but, I think we should provide a way to disable these sync at startup if one wants to.\n\n[0] https://review.opendev.org/c/openstack/neutron/+/899077","commit_id":"165cef40481a85116808a06a37fad3010f687046"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"6a6d46a946823c72065e68105a6f094d4db38332","unresolved":true,"context_lines":[{"line_number":1369,"context_line":""},{"line_number":1370,"context_line":"        OvnSbSynchronizer will sync data from OVN_Southbound to neutron. And"},{"line_number":1371,"context_line":"        the synchronization will always be performed, no matter what mode it"},{"line_number":1372,"context_line":"        is."},{"line_number":1373,"context_line":"        \"\"\""},{"line_number":1374,"context_line":"        if self.mode \u003d\u003d SYNC_MODE_OFF:"},{"line_number":1375,"context_line":"            LOG.debug(\"Neutron sync mode is off\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"2bbba4cc_35666d9f","line":1372,"in_reply_to":"7a8336c8_ced64253","updated":"2023-10-31 21:29:55.000000000","message":"I believe some context about the difference is captured here (~2016): https://review.opendev.org/c/openstack/networking-ovn/+/322488/12/networking_ovn/ovn_db_sync.py\n\n```\nsync for NB means sync from Neutron to OVN, to get mismatches logged/repaired, which is part of fault-recovery feature;\n\nsync for SB means sync from OVN to Neutron, to get host binding data, which is more of a normal function. (I wonder if it is better to do it the reverse way, which requires API support in Neutron to specify the host bindings, and OVN change to support pushing the change to ovn-controllers, but it is out of the scope of this change)\n```\n\nThe latter is not considered a \"repair\" but a regular procedure after config update, hence no conditional here.","commit_id":"165cef40481a85116808a06a37fad3010f687046"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a23c3472c287f117bd467658add861b722e28445","unresolved":true,"context_lines":[{"line_number":1372,"context_line":"        is."},{"line_number":1373,"context_line":"        \"\"\""},{"line_number":1374,"context_line":"        if self.mode \u003d\u003d SYNC_MODE_OFF:"},{"line_number":1375,"context_line":"            LOG.debug(\"Neutron sync mode is off\")"},{"line_number":1376,"context_line":"            return"},{"line_number":1377,"context_line":"        LOG.debug(\"OVN-Southbound DB sync process started @ %s\","},{"line_number":1378,"context_line":"                  str(datetime.now()))"}],"source_content_type":"text/x-python","patch_set":3,"id":"8aa01753_97be2b05","line":1375,"updated":"2023-10-23 18:22:21.000000000","message":"To match the NB do_sync() code:\n\n\"Neutron sync mode is off, not checking OVN Southbound DB for consistency\"","commit_id":"165cef40481a85116808a06a37fad3010f687046"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a30e235cf3b0d2fd7b357fa7a0245b0d6766e654","unresolved":false,"context_lines":[{"line_number":1372,"context_line":"        is."},{"line_number":1373,"context_line":"        \"\"\""},{"line_number":1374,"context_line":"        if self.mode \u003d\u003d SYNC_MODE_OFF:"},{"line_number":1375,"context_line":"            LOG.debug(\"Neutron sync mode is off\")"},{"line_number":1376,"context_line":"            return"},{"line_number":1377,"context_line":"        LOG.debug(\"OVN-Southbound DB sync process started @ %s\","},{"line_number":1378,"context_line":"                  str(datetime.now()))"}],"source_content_type":"text/x-python","patch_set":3,"id":"eb652387_a86c656a","line":1375,"in_reply_to":"8aa01753_97be2b05","updated":"2023-10-24 08:19:14.000000000","message":"Done","commit_id":"165cef40481a85116808a06a37fad3010f687046"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"a23c3472c287f117bd467658add861b722e28445","unresolved":true,"context_lines":[{"line_number":1400,"context_line":"            LOG.warning(\u0027Stale host %s found in Neutron but not in OVN SB DB\u0027,"},{"line_number":1401,"context_line":"                        host)"},{"line_number":1402,"context_line":"            if self.mode \u003d\u003d SYNC_MODE_REPAIR:"},{"line_number":1403,"context_line":"                LOG.warning(\u0027Clear its SegmentHostMapping in Neutron \u0027"},{"line_number":1404,"context_line":"                            \u0027for host %s\u0027, host)"},{"line_number":1405,"context_line":"                self.ovn_driver.update_segment_host_mapping(host, [])"},{"line_number":1406,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"e3d7a887_4ffd97d4","line":1403,"range":{"start_line":1403,"start_character":29,"end_line":1403,"end_character":38},"updated":"2023-10-23 18:22:21.000000000","message":"nit: s/Clear its/Clearing\n\nSame applies below.","commit_id":"165cef40481a85116808a06a37fad3010f687046"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"a30e235cf3b0d2fd7b357fa7a0245b0d6766e654","unresolved":false,"context_lines":[{"line_number":1400,"context_line":"            LOG.warning(\u0027Stale host %s found in Neutron but not in OVN SB DB\u0027,"},{"line_number":1401,"context_line":"                        host)"},{"line_number":1402,"context_line":"            if self.mode \u003d\u003d SYNC_MODE_REPAIR:"},{"line_number":1403,"context_line":"                LOG.warning(\u0027Clear its SegmentHostMapping in Neutron \u0027"},{"line_number":1404,"context_line":"                            \u0027for host %s\u0027, host)"},{"line_number":1405,"context_line":"                self.ovn_driver.update_segment_host_mapping(host, [])"},{"line_number":1406,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"775cc47a_e17e5a88","line":1403,"range":{"start_line":1403,"start_character":29,"end_line":1403,"end_character":38},"in_reply_to":"e3d7a887_4ffd97d4","updated":"2023-10-24 08:19:14.000000000","message":"Done","commit_id":"165cef40481a85116808a06a37fad3010f687046"}]}
