)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6af35362bd51df57d6f1d4ae3a843ebcafc779df","unresolved":true,"context_lines":[{"line_number":12,"context_line":"This could be an issue if neutron agent failed to configure a device"},{"line_number":13,"context_line":"during that first loop."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Example of failure: a RPC call like get_device_details."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"When such failure occur, the vlan is not removed from local_vlan_hints"},{"line_number":18,"context_line":"when configuring the device, but the hint is anyway restored in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"c6b28310_7351be6b","line":15,"updated":"2023-04-25 07:32:13.000000000","message":"If this is happening we do not call dispose_local_vlan_hints, rights?","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"ba8bf919c454fa92141a895ef1e08653d3c1a114","unresolved":false,"context_lines":[{"line_number":12,"context_line":"This could be an issue if neutron agent failed to configure a device"},{"line_number":13,"context_line":"during that first loop."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Example of failure: a RPC call like get_device_details."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"When such failure occur, the vlan is not removed from local_vlan_hints"},{"line_number":18,"context_line":"when configuring the device, but the hint is anyway restored in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"de42950e_ef6a4a09","line":15,"in_reply_to":"3852aae0_b6fd8671","updated":"2023-05-04 08:27:08.000000000","message":"So, this could happen when the neutron server is returning some devices in failed_devices.\nI did a test to simulate this.\nWith this patchset, the hint stay in local_vlan_hints.\nWihtout the patch, the hint is restored in available vlans, then a mix between ports can occur.","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"d2249635a66615ed38e7620b6224951a46422fc6","unresolved":true,"context_lines":[{"line_number":12,"context_line":"This could be an issue if neutron agent failed to configure a device"},{"line_number":13,"context_line":"during that first loop."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Example of failure: a RPC call like get_device_details."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"When such failure occur, the vlan is not removed from local_vlan_hints"},{"line_number":18,"context_line":"when configuring the device, but the hint is anyway restored in"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3852aae0_b6fd8671","line":15,"in_reply_to":"c6b28310_7351be6b","updated":"2023-05-03 11:40:40.000000000","message":"On my downstream code, we do call dispose on this edge case. I may have a custom try/except catch for this situation.\nI\u0027ll check with upstream code to make sure we do call this.","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6af35362bd51df57d6f1d4ae3a843ebcafc779df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"01a8b206_26848e2a","updated":"2023-04-25 07:32:13.000000000","message":"Hello, thanks for the proposed fix I\u0027m not against the change just not sure when this can occur. Could you provide an unit test for it that would help I guess","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d5330583b252194bdaf519ec075084c3595319db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f9a23da4_265f85e5","updated":"2023-04-24 14:08:12.000000000","message":"Is there a bug filed for this?","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"7c06c1b765ebf44225956b04a89483ebe77c7a0c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"babc53c4_2c634512","updated":"2023-04-14 13:34:45.000000000","message":"isn\u0027t there some test for this? If there\u0027s no could you please check?","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"24651f6e9a4372d410977fda3e6baa4780546788","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5528f999_01b2cb64","updated":"2023-04-14 13:35:04.000000000","message":"recheck\nFunctional failure seems irrelevant, though suspicios","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"d2249635a66615ed38e7620b6224951a46422fc6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"36829edd_f8b27620","in_reply_to":"01a8b206_26848e2a","updated":"2023-05-03 11:40:40.000000000","message":"will do","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"ba8bf919c454fa92141a895ef1e08653d3c1a114","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5a784450_cafdaee0","in_reply_to":"36829edd_f8b27620","updated":"2023-05-04 08:27:08.000000000","message":"Done","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e8166223153591683d1d98889f05e1368938fd39","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"928b2d3a_a4b95a82","updated":"2023-05-04 10:06:27.000000000","message":"I think your change makes sense we should not just clean this by ourselves and let\u0027s the deployment in a bad state (even usable).\n\nI would recommend to log warning with a clear and concise message on the action for operator as it will have to do something to fix that state of the deployment.","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"50a638c7b58c93318680c1cc999f0e88d93ee327","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"20ede75a_8fc09999","updated":"2023-05-23 18:35:31.000000000","message":"Hey, Im very sorry Arnaud I have not noticed your update. Feel free to ping me on IRC as if I vote I should involve on your change.\n\nI still vote -1 as I still don\u0027t think like you I guess we should expose such details in a warning.","commit_id":"d181f0e130364fcb5ce10b0d7b299c5e8fc2641a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"14a66817bed81214c9a00e24ce1230d0aadf1c19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"18d2cbec_87a1542b","updated":"2023-06-09 08:29:05.000000000","message":"++ thanks","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"02b7232143695f0898b42897725a69ecf9277666","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"935bbddd_e75c9f87","updated":"2024-08-16 21:10:37.000000000","message":"I agree it would be a good thing to fix this, just some comments.","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"135d9fba02fabc74c1f66baa16199c893c556ccc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"6bf25d89_2b65e876","updated":"2024-08-16 15:10:06.000000000","message":"We are running this downstream and it\u0027s saving our agent to mix some customer.\nI still believe it would be useful to the community, what do you think?","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"542bdf9da4a8729f7ff0f1f95a351bcbb85323ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"78014f4c_66bc1f7c","in_reply_to":"6bf25d89_2b65e876","updated":"2024-09-30 07:03:39.000000000","message":"Done","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":9531,"name":"liuyulong","display_name":"LIU Yulong","email":"i@liuyulong.me","username":"LIU-Yulong"},"change_message_id":"39ebd278499ff6ded2f5a004f0583b9d0c7a551e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"fb78a064_1e69e8a2","updated":"2024-10-11 08:15:13.000000000","message":"Looks good to me, I may apply this to our environments as well.","commit_id":"598c05ab6a2db24f9cbb899517b7daffc7c73dd1"}],"neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"6af35362bd51df57d6f1d4ae3a843ebcafc779df","unresolved":true,"context_lines":[{"line_number":483,"context_line":"                    self.available_local_vlans.remove(local_vlan)"},{"line_number":484,"context_line":"                    self._local_vlan_hints[key] \u003d local_vlan"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"    def _dispose_local_vlan_hints(self):"},{"line_number":487,"context_line":"        self.available_local_vlans.update(self._local_vlan_hints.values())"},{"line_number":488,"context_line":"        self._local_vlan_hints \u003d {}"},{"line_number":489,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ae3afe6c_b4faed7f","side":"PARENT","line":486,"updated":"2023-04-25 07:32:13.000000000","message":"Have you noticed reason why it has been introduced ?\n\nc69407e676c483820f5c505d8d6d7923b0461819","commit_id":"4ed33b55a7ba8b5beb04feb0386a381ee5a9e994"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"d2249635a66615ed38e7620b6224951a46422fc6","unresolved":false,"context_lines":[{"line_number":483,"context_line":"                    self.available_local_vlans.remove(local_vlan)"},{"line_number":484,"context_line":"                    self._local_vlan_hints[key] \u003d local_vlan"},{"line_number":485,"context_line":""},{"line_number":486,"context_line":"    def _dispose_local_vlan_hints(self):"},{"line_number":487,"context_line":"        self.available_local_vlans.update(self._local_vlan_hints.values())"},{"line_number":488,"context_line":"        self._local_vlan_hints \u003d {}"},{"line_number":489,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"6396845f_2da4d78b","side":"PARENT","line":486,"in_reply_to":"ae3afe6c_b4faed7f","updated":"2023-05-03 11:40:40.000000000","message":"Yes, but it\u0027s not clear to me. It was mostly about fixing a race condition.\nWe are not anymore having a race condition, but some leftovers.","commit_id":"4ed33b55a7ba8b5beb04feb0386a381ee5a9e994"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d5330583b252194bdaf519ec075084c3595319db","unresolved":true,"context_lines":[{"line_number":2826,"context_line":"                    # Keep this flag in the last line of \"try\" block,"},{"line_number":2827,"context_line":"                    # so we can sure that no other Exception occurred."},{"line_number":2828,"context_line":"                    ovs_restarted \u003d False"},{"line_number":2829,"context_line":"                    if len(self._local_vlan_hints.values()) \u003e 0:"},{"line_number":2830,"context_line":"                        LOG.error("},{"line_number":2831,"context_line":"                            \"After iteration %(iter_num)d, local_vlan_hints \""},{"line_number":2832,"context_line":"                            \"still contains %(nb_hints)d values! You may \""}],"source_content_type":"text/x-python","patch_set":1,"id":"8852b1c1_321305b5","line":2829,"updated":"2023-04-24 14:08:12.000000000","message":"len(self._local_vlan_hints) should be enough","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"d2249635a66615ed38e7620b6224951a46422fc6","unresolved":false,"context_lines":[{"line_number":2826,"context_line":"                    # Keep this flag in the last line of \"try\" block,"},{"line_number":2827,"context_line":"                    # so we can sure that no other Exception occurred."},{"line_number":2828,"context_line":"                    ovs_restarted \u003d False"},{"line_number":2829,"context_line":"                    if len(self._local_vlan_hints.values()) \u003e 0:"},{"line_number":2830,"context_line":"                        LOG.error("},{"line_number":2831,"context_line":"                            \"After iteration %(iter_num)d, local_vlan_hints \""},{"line_number":2832,"context_line":"                            \"still contains %(nb_hints)d values! You may \""}],"source_content_type":"text/x-python","patch_set":1,"id":"74c3c9b5_289580e3","line":2829,"in_reply_to":"8852b1c1_321305b5","updated":"2023-05-03 11:40:40.000000000","message":"Done","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"d5330583b252194bdaf519ec075084c3595319db","unresolved":true,"context_lines":[{"line_number":2837,"context_line":"                        LOG.error("},{"line_number":2838,"context_line":"                            \"local_vlan_hints: %(map)s\","},{"line_number":2839,"context_line":"                            {\"map\": self._local_vlan_hints}"},{"line_number":2840,"context_line":"                        )"},{"line_number":2841,"context_line":"                except Exception:"},{"line_number":2842,"context_line":"                    LOG.exception(\"Error while processing VIF ports\")"},{"line_number":2843,"context_line":"                    # Put the ports back in self.updated_port"}],"source_content_type":"text/x-python","patch_set":1,"id":"13dc3458_abda2ae1","line":2840,"updated":"2023-04-24 14:08:12.000000000","message":"I would just combine this into the previous LOG call.","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"d2249635a66615ed38e7620b6224951a46422fc6","unresolved":false,"context_lines":[{"line_number":2837,"context_line":"                        LOG.error("},{"line_number":2838,"context_line":"                            \"local_vlan_hints: %(map)s\","},{"line_number":2839,"context_line":"                            {\"map\": self._local_vlan_hints}"},{"line_number":2840,"context_line":"                        )"},{"line_number":2841,"context_line":"                except Exception:"},{"line_number":2842,"context_line":"                    LOG.exception(\"Error while processing VIF ports\")"},{"line_number":2843,"context_line":"                    # Put the ports back in self.updated_port"}],"source_content_type":"text/x-python","patch_set":1,"id":"eaafdf41_f220a230","line":2840,"in_reply_to":"13dc3458_abda2ae1","updated":"2023-05-03 11:40:40.000000000","message":"Done","commit_id":"6c8ef79f31ca361fc4af8d6eb2175382282cf05d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e8166223153591683d1d98889f05e1368938fd39","unresolved":true,"context_lines":[{"line_number":2830,"context_line":"                    # Keep this flag in the last line of \"try\" block,"},{"line_number":2831,"context_line":"                    # so we can sure that no other Exception occurred."},{"line_number":2832,"context_line":"                    ovs_restarted \u003d False"},{"line_number":2833,"context_line":"                    self._dispose_local_vlan_hints()"},{"line_number":2834,"context_line":"                except Exception:"},{"line_number":2835,"context_line":"                    LOG.exception(\"Error while processing VIF ports\")"},{"line_number":2836,"context_line":"                    # Put the ports back in self.updated_port"}],"source_content_type":"text/x-python","patch_set":5,"id":"50ec7f6f_2bb0b69f","side":"PARENT","line":2833,"updated":"2023-05-04 10:06:27.000000000","message":"I think your change makes sense we should not just clean this by ourselves.","commit_id":"afbc31ea31ed54098a41ab4cd9952188df0b5580"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"00bc9b9904c6bb915aed407a9475c5d7269c75ce","unresolved":false,"context_lines":[{"line_number":2830,"context_line":"                    # Keep this flag in the last line of \"try\" block,"},{"line_number":2831,"context_line":"                    # so we can sure that no other Exception occurred."},{"line_number":2832,"context_line":"                    ovs_restarted \u003d False"},{"line_number":2833,"context_line":"                    self._dispose_local_vlan_hints()"},{"line_number":2834,"context_line":"                except Exception:"},{"line_number":2835,"context_line":"                    LOG.exception(\"Error while processing VIF ports\")"},{"line_number":2836,"context_line":"                    # Put the ports back in self.updated_port"}],"source_content_type":"text/x-python","patch_set":5,"id":"ac2fb0c8_033730e8","side":"PARENT","line":2833,"in_reply_to":"50ec7f6f_2bb0b69f","updated":"2023-05-04 16:10:20.000000000","message":"Ack","commit_id":"afbc31ea31ed54098a41ab4cd9952188df0b5580"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e8166223153591683d1d98889f05e1368938fd39","unresolved":true,"context_lines":[{"line_number":2827,"context_line":"                    # so we can sure that no other Exception occurred."},{"line_number":2828,"context_line":"                    ovs_restarted \u003d False"},{"line_number":2829,"context_line":"                    if len(self._local_vlan_hints):"},{"line_number":2830,"context_line":"                        LOG.error("},{"line_number":2831,"context_line":"                            \"After iteration %(iter_num)d, local_vlan_hints \""},{"line_number":2832,"context_line":"                            \"still contains %(nb_hints)d values! You may \""},{"line_number":2833,"context_line":"                            \"have dead ports in integration bridge. \""}],"source_content_type":"text/x-python","patch_set":5,"id":"29c03665_36e464ee","line":2830,"updated":"2023-05-04 10:06:27.000000000","message":"a warning is probably what we need here","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"00bc9b9904c6bb915aed407a9475c5d7269c75ce","unresolved":false,"context_lines":[{"line_number":2827,"context_line":"                    # so we can sure that no other Exception occurred."},{"line_number":2828,"context_line":"                    ovs_restarted \u003d False"},{"line_number":2829,"context_line":"                    if len(self._local_vlan_hints):"},{"line_number":2830,"context_line":"                        LOG.error("},{"line_number":2831,"context_line":"                            \"After iteration %(iter_num)d, local_vlan_hints \""},{"line_number":2832,"context_line":"                            \"still contains %(nb_hints)d values! You may \""},{"line_number":2833,"context_line":"                            \"have dead ports in integration bridge. \""}],"source_content_type":"text/x-python","patch_set":5,"id":"665139ba_33703740","line":2830,"in_reply_to":"29c03665_36e464ee","updated":"2023-05-04 16:10:20.000000000","message":"Done","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e8166223153591683d1d98889f05e1368938fd39","unresolved":true,"context_lines":[{"line_number":2829,"context_line":"                    if len(self._local_vlan_hints):"},{"line_number":2830,"context_line":"                        LOG.error("},{"line_number":2831,"context_line":"                            \"After iteration %(iter_num)d, local_vlan_hints \""},{"line_number":2832,"context_line":"                            \"still contains %(nb_hints)d values! You may \""},{"line_number":2833,"context_line":"                            \"have dead ports in integration bridge. \""},{"line_number":2834,"context_line":"                            \"local_vlan_hints: %(map)s\","},{"line_number":2835,"context_line":"                            {\u0027iter_num\u0027: self.iter_num,"}],"source_content_type":"text/x-python","patch_set":5,"id":"837cf38a_52a2f1d1","line":2832,"updated":"2023-05-04 10:06:27.000000000","message":"s/values!/values.","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"00bc9b9904c6bb915aed407a9475c5d7269c75ce","unresolved":false,"context_lines":[{"line_number":2829,"context_line":"                    if len(self._local_vlan_hints):"},{"line_number":2830,"context_line":"                        LOG.error("},{"line_number":2831,"context_line":"                            \"After iteration %(iter_num)d, local_vlan_hints \""},{"line_number":2832,"context_line":"                            \"still contains %(nb_hints)d values! You may \""},{"line_number":2833,"context_line":"                            \"have dead ports in integration bridge. \""},{"line_number":2834,"context_line":"                            \"local_vlan_hints: %(map)s\","},{"line_number":2835,"context_line":"                            {\u0027iter_num\u0027: self.iter_num,"}],"source_content_type":"text/x-python","patch_set":5,"id":"62fdf707_d3412e04","line":2832,"in_reply_to":"837cf38a_52a2f1d1","updated":"2023-05-04 16:10:20.000000000","message":"Done","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e8166223153591683d1d98889f05e1368938fd39","unresolved":true,"context_lines":[{"line_number":2834,"context_line":"                            \"local_vlan_hints: %(map)s\","},{"line_number":2835,"context_line":"                            {\u0027iter_num\u0027: self.iter_num,"},{"line_number":2836,"context_line":"                             \u0027nb_hints\u0027: len(self._local_vlan_hints),"},{"line_number":2837,"context_line":"                             \u0027map\u0027: self._local_vlan_hints}"},{"line_number":2838,"context_line":"                        )"},{"line_number":2839,"context_line":"                except Exception:"},{"line_number":2840,"context_line":"                    LOG.exception(\"Error while processing VIF ports\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"6aa765d9_e2379eb1","line":2837,"updated":"2023-05-04 10:06:27.000000000","message":"An error or warning is reported to the operator, your message includes details that are for developers. Operators have no idea of what is local_vlan_hints.","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"00bc9b9904c6bb915aed407a9475c5d7269c75ce","unresolved":true,"context_lines":[{"line_number":2834,"context_line":"                            \"local_vlan_hints: %(map)s\","},{"line_number":2835,"context_line":"                            {\u0027iter_num\u0027: self.iter_num,"},{"line_number":2836,"context_line":"                             \u0027nb_hints\u0027: len(self._local_vlan_hints),"},{"line_number":2837,"context_line":"                             \u0027map\u0027: self._local_vlan_hints}"},{"line_number":2838,"context_line":"                        )"},{"line_number":2839,"context_line":"                except Exception:"},{"line_number":2840,"context_line":"                    LOG.exception(\"Error while processing VIF ports\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"f54cee30_331d50ee","line":2837,"in_reply_to":"6aa765d9_e2379eb1","updated":"2023-05-04 16:10:20.000000000","message":"As an operator, what I usually like is to find variable from code in logs, so I can grep in code and see where it\u0027s used and understand what could be wrong.\n\nOn the other hand, I also agree that this is maybe not very precise on what could be done to solve the issue.\n\nDo you have a better proposition than this?","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"14f939178a7d481c8a58ffafe41b7c6124d10b2b","unresolved":false,"context_lines":[{"line_number":2834,"context_line":"                            \"local_vlan_hints: %(map)s\","},{"line_number":2835,"context_line":"                            {\u0027iter_num\u0027: self.iter_num,"},{"line_number":2836,"context_line":"                             \u0027nb_hints\u0027: len(self._local_vlan_hints),"},{"line_number":2837,"context_line":"                             \u0027map\u0027: self._local_vlan_hints}"},{"line_number":2838,"context_line":"                        )"},{"line_number":2839,"context_line":"                except Exception:"},{"line_number":2840,"context_line":"                    LOG.exception(\"Error while processing VIF ports\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a227b25_14b26361","line":2837,"in_reply_to":"c8cb1fbd_f9f0cea3","updated":"2023-06-06 14:04:38.000000000","message":"Hello, I did as requested, let me know if it sounds good to you 😊","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"50a638c7b58c93318680c1cc999f0e88d93ee327","unresolved":true,"context_lines":[{"line_number":2834,"context_line":"                            \"local_vlan_hints: %(map)s\","},{"line_number":2835,"context_line":"                            {\u0027iter_num\u0027: self.iter_num,"},{"line_number":2836,"context_line":"                             \u0027nb_hints\u0027: len(self._local_vlan_hints),"},{"line_number":2837,"context_line":"                             \u0027map\u0027: self._local_vlan_hints}"},{"line_number":2838,"context_line":"                        )"},{"line_number":2839,"context_line":"                except Exception:"},{"line_number":2840,"context_line":"                    LOG.exception(\"Error while processing VIF ports\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"c8cb1fbd_f9f0cea3","line":2837,"in_reply_to":"f54cee30_331d50ee","updated":"2023-05-23 18:35:31.000000000","message":"I think we should just explain that as a warning: \"Process was not able to clean  local vlans: %s, please ensure that you don\u0027t have dead port in integration bridge\". You can also add a debug message with more detail and variables as you already have.\n\nWhat do you think?","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"02b7232143695f0898b42897725a69ecf9277666","unresolved":true,"context_lines":[{"line_number":2881,"context_line":""},{"line_number":2882,"context_line":"                    if len(self._local_vlan_hints):"},{"line_number":2883,"context_line":"                        LOG.warning("},{"line_number":2884,"context_line":"                            \"After iteration %(iter_num)d, the process was \""},{"line_number":2885,"context_line":"                            \"not able to clean local vlans (%(nb_hints)s \""},{"line_number":2886,"context_line":"                            \"failed). Please ensure that you don\u0027t have \""},{"line_number":2887,"context_line":"                            \"dead ports in integration bridge.\","}],"source_content_type":"text/x-python","patch_set":7,"id":"30075b96_1672e631","line":2884,"updated":"2024-08-16 21:10:37.000000000","message":"nit: I think you should try and keep the same pattern as the other log messages here, but this message does not need the timestamp.","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"542bdf9da4a8729f7ff0f1f95a351bcbb85323ee","unresolved":false,"context_lines":[{"line_number":2881,"context_line":""},{"line_number":2882,"context_line":"                    if len(self._local_vlan_hints):"},{"line_number":2883,"context_line":"                        LOG.warning("},{"line_number":2884,"context_line":"                            \"After iteration %(iter_num)d, the process was \""},{"line_number":2885,"context_line":"                            \"not able to clean local vlans (%(nb_hints)s \""},{"line_number":2886,"context_line":"                            \"failed). Please ensure that you don\u0027t have \""},{"line_number":2887,"context_line":"                            \"dead ports in integration bridge.\","}],"source_content_type":"text/x-python","patch_set":7,"id":"d302b036_913af369","line":2884,"in_reply_to":"30075b96_1672e631","updated":"2024-09-30 07:03:39.000000000","message":"I did try to set the same pattern.\nBut I dont get what you mean with the timestamp.","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"02b7232143695f0898b42897725a69ecf9277666","unresolved":true,"context_lines":[{"line_number":2883,"context_line":"                        LOG.warning("},{"line_number":2884,"context_line":"                            \"After iteration %(iter_num)d, the process was \""},{"line_number":2885,"context_line":"                            \"not able to clean local vlans (%(nb_hints)s \""},{"line_number":2886,"context_line":"                            \"failed). Please ensure that you don\u0027t have \""},{"line_number":2887,"context_line":"                            \"dead ports in integration bridge.\","},{"line_number":2888,"context_line":"                            {\u0027iter_num\u0027: self.iter_num,"},{"line_number":2889,"context_line":"                             \u0027nb_hints\u0027: len(self._local_vlan_hints)}"}],"source_content_type":"text/x-python","patch_set":7,"id":"d8d61c2f_c419a73f","line":2886,"range":{"start_line":2886,"start_character":61,"end_line":2886,"end_character":66},"updated":"2024-08-16 21:10:37.000000000","message":"s/do not","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"542bdf9da4a8729f7ff0f1f95a351bcbb85323ee","unresolved":false,"context_lines":[{"line_number":2883,"context_line":"                        LOG.warning("},{"line_number":2884,"context_line":"                            \"After iteration %(iter_num)d, the process was \""},{"line_number":2885,"context_line":"                            \"not able to clean local vlans (%(nb_hints)s \""},{"line_number":2886,"context_line":"                            \"failed). Please ensure that you don\u0027t have \""},{"line_number":2887,"context_line":"                            \"dead ports in integration bridge.\","},{"line_number":2888,"context_line":"                            {\u0027iter_num\u0027: self.iter_num,"},{"line_number":2889,"context_line":"                             \u0027nb_hints\u0027: len(self._local_vlan_hints)}"}],"source_content_type":"text/x-python","patch_set":7,"id":"bebaad93_d1829e07","line":2886,"range":{"start_line":2886,"start_character":61,"end_line":2886,"end_character":66},"in_reply_to":"d8d61c2f_c419a73f","updated":"2024-09-30 07:03:39.000000000","message":"Done","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"02b7232143695f0898b42897725a69ecf9277666","unresolved":true,"context_lines":[{"line_number":2884,"context_line":"                            \"After iteration %(iter_num)d, the process was \""},{"line_number":2885,"context_line":"                            \"not able to clean local vlans (%(nb_hints)s \""},{"line_number":2886,"context_line":"                            \"failed). Please ensure that you don\u0027t have \""},{"line_number":2887,"context_line":"                            \"dead ports in integration bridge.\","},{"line_number":2888,"context_line":"                            {\u0027iter_num\u0027: self.iter_num,"},{"line_number":2889,"context_line":"                             \u0027nb_hints\u0027: len(self._local_vlan_hints)}"},{"line_number":2890,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":7,"id":"ce95c463_ca2b8c6b","line":2887,"range":{"start_line":2887,"start_character":40,"end_line":2887,"end_character":42},"updated":"2024-08-16 21:10:37.000000000","message":"s/in the","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"542bdf9da4a8729f7ff0f1f95a351bcbb85323ee","unresolved":false,"context_lines":[{"line_number":2884,"context_line":"                            \"After iteration %(iter_num)d, the process was \""},{"line_number":2885,"context_line":"                            \"not able to clean local vlans (%(nb_hints)s \""},{"line_number":2886,"context_line":"                            \"failed). Please ensure that you don\u0027t have \""},{"line_number":2887,"context_line":"                            \"dead ports in integration bridge.\","},{"line_number":2888,"context_line":"                            {\u0027iter_num\u0027: self.iter_num,"},{"line_number":2889,"context_line":"                             \u0027nb_hints\u0027: len(self._local_vlan_hints)}"},{"line_number":2890,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f25f1c7_b87de750","line":2887,"range":{"start_line":2887,"start_character":40,"end_line":2887,"end_character":42},"in_reply_to":"ce95c463_ca2b8c6b","updated":"2024-09-30 07:03:39.000000000","message":"Done","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"02b7232143695f0898b42897725a69ecf9277666","unresolved":true,"context_lines":[{"line_number":2890,"context_line":"                        )"},{"line_number":2891,"context_line":"                        LOG.debug("},{"line_number":2892,"context_line":"                            \"local_vlan_hints: %s\", self._local_vlan_hints"},{"line_number":2893,"context_line":"                        )"},{"line_number":2894,"context_line":"                except Exception:"},{"line_number":2895,"context_line":"                    LOG.exception(\"Error while processing VIF ports\")"},{"line_number":2896,"context_line":"                    # Put the ports back in self.updated_port"}],"source_content_type":"text/x-python","patch_set":7,"id":"8b05e022_ae1cd245","line":2893,"updated":"2024-08-16 21:10:37.000000000","message":"I have not tested this, but will it print these two messages every time through the loop if there is still an entry in the list?","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"542bdf9da4a8729f7ff0f1f95a351bcbb85323ee","unresolved":false,"context_lines":[{"line_number":2890,"context_line":"                        )"},{"line_number":2891,"context_line":"                        LOG.debug("},{"line_number":2892,"context_line":"                            \"local_vlan_hints: %s\", self._local_vlan_hints"},{"line_number":2893,"context_line":"                        )"},{"line_number":2894,"context_line":"                except Exception:"},{"line_number":2895,"context_line":"                    LOG.exception(\"Error while processing VIF ports\")"},{"line_number":2896,"context_line":"                    # Put the ports back in self.updated_port"}],"source_content_type":"text/x-python","patch_set":7,"id":"d403630b_72e915cd","line":2893,"in_reply_to":"8b05e022_ae1cd245","updated":"2024-09-30 07:03:39.000000000","message":"yes","commit_id":"e3ac0c9ae9d044014c56f3b8e45442d0ff84aea0"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8f1dfbf2112dc28f816ed1dc8d5d09f36c5bb22b","unresolved":true,"context_lines":[{"line_number":2887,"context_line":""},{"line_number":2888,"context_line":"                    if len(self._local_vlan_hints):"},{"line_number":2889,"context_line":"                        LOG.warning("},{"line_number":2890,"context_line":"                            \"Agent rpc_loop - iteration:%(iter_num)d - \""},{"line_number":2891,"context_line":"                            \"the process was not able to clean local vlans \""},{"line_number":2892,"context_line":"                            \"(%(nb_hints)s failed). Please ensure that you \""},{"line_number":2893,"context_line":"                            \"do not have dead ports in the integration \""}],"source_content_type":"text/x-python","patch_set":8,"id":"35949143_69555929","line":2890,"range":{"start_line":2890,"start_character":55,"end_line":2890,"end_character":56},"updated":"2024-10-01 20:14:30.000000000","message":"nit: missing space after :","commit_id":"598c05ab6a2db24f9cbb899517b7daffc7c73dd1"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"062e891dfeb4ad4e77771fa95e288dcbe4db473e","unresolved":true,"context_lines":[{"line_number":2887,"context_line":""},{"line_number":2888,"context_line":"                    if len(self._local_vlan_hints):"},{"line_number":2889,"context_line":"                        LOG.warning("},{"line_number":2890,"context_line":"                            \"Agent rpc_loop - iteration:%(iter_num)d - \""},{"line_number":2891,"context_line":"                            \"the process was not able to clean local vlans \""},{"line_number":2892,"context_line":"                            \"(%(nb_hints)s failed). Please ensure that you \""},{"line_number":2893,"context_line":"                            \"do not have dead ports in the integration \""}],"source_content_type":"text/x-python","patch_set":8,"id":"21587ac1_cbf5ad49","line":2890,"range":{"start_line":2890,"start_character":55,"end_line":2890,"end_character":56},"in_reply_to":"35949143_69555929","updated":"2024-10-02 07:25:56.000000000","message":"Actually I copied that from another line above IIRC 😊","commit_id":"598c05ab6a2db24f9cbb899517b7daffc7c73dd1"}],"neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py":[{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"4f6642c17948202023e40fc5a932bf83ec8bb7fd","unresolved":false,"context_lines":[{"line_number":2472,"context_line":""},{"line_number":2473,"context_line":"            # Assert that we still have one value in the hints"},{"line_number":2474,"context_line":"            self.assertEqual(1, len(self.agent._local_vlan_hints))"},{"line_number":2475,"context_line":"            "},{"line_number":2476,"context_line":""},{"line_number":2477,"context_line":"    def test_set_rpc_timeout(self):"},{"line_number":2478,"context_line":"        with mock.patch.object(n_rpc.BackingOffClient,"}],"source_content_type":"text/x-python","patch_set":3,"id":"932833c3_f7ae9d77","line":2475,"updated":"2023-05-03 15:07:38.000000000","message":"sorry for this, fixing","commit_id":"908d990b95d93a054ff848d41b41cac7859b6477"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"3a31cbf3891ec737da64509006c1f852aaae146f","unresolved":false,"context_lines":[{"line_number":2416,"context_line":"            cleanup.assert_not_called()"},{"line_number":2417,"context_line":"            rpc_stop.assert_called_once()"},{"line_number":2418,"context_line":""},{"line_number":2419,"context_line":"    def test_rpc_loop_keep_hints(self):"},{"line_number":2420,"context_line":"        details \u003d {\u0027admin_state_up\u0027: True,"},{"line_number":2421,"context_line":"                   \u0027port_id\u0027: \u00278a66d0cc-2950-dead-beef-9a390f1f4064\u0027,"},{"line_number":2422,"context_line":"                   \u0027device\u0027: \u0027tap8a66d0cc-29\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7e897b9d_b8aa5c8c","line":2419,"range":{"start_line":2419,"start_character":1,"end_line":2419,"end_character":2},"updated":"2023-05-03 15:13:00.000000000","message":"This first test is about checking if we keep a hint after rpc_loop (the purpose of this patch)","commit_id":"ff8028d03ec86ce940c3fe08eb7ec94b30d59b05"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"140ada1d7a2596e93ae6cfad36c6d3a9f0ec365a","unresolved":false,"context_lines":[{"line_number":2475,"context_line":"            # Run the rpc_loop"},{"line_number":2476,"context_line":"            self.agent.rpc_loop(polling_manager\u003dmock.Mock())"},{"line_number":2477,"context_line":""},{"line_number":2478,"context_line":"    def test_rpc_loop_hints_all_used(self):"},{"line_number":2479,"context_line":"        devices \u003d [\u0027tap1234\u0027, \u0027tap2345\u0027]"},{"line_number":2480,"context_line":"        failed_devices \u003d []"},{"line_number":2481,"context_line":"        hints \u003d {\u0027tap1234net/4242\u0027: 42, \u0027tap2345net/4242\u0027: 43}"}],"source_content_type":"text/x-python","patch_set":5,"id":"5d78ffeb_c022e94f","line":2478,"updated":"2023-05-04 08:31:31.000000000","message":"This is the regular situation, when everything works fine, all hints are consumed.","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"140ada1d7a2596e93ae6cfad36c6d3a9f0ec365a","unresolved":false,"context_lines":[{"line_number":2485,"context_line":"        # Assert that we do not have any value in the hints"},{"line_number":2486,"context_line":"        self.assertEqual(0, len(self.agent._local_vlan_hints))"},{"line_number":2487,"context_line":""},{"line_number":2488,"context_line":"    def test_rpc_loop_hints_one_left(self):"},{"line_number":2489,"context_line":"        devices \u003d [\u0027tap1234\u0027]"},{"line_number":2490,"context_line":"        failed_devices \u003d []"},{"line_number":2491,"context_line":"        hints \u003d {\u0027tap1234net/4242\u0027: 42, \u0027tap2345net/4242\u0027: 43}"}],"source_content_type":"text/x-python","patch_set":5,"id":"b76a6e93_33b13e50","line":2488,"updated":"2023-05-04 08:31:31.000000000","message":"This is a weird situation, a hint is not supposed to stay, so a dead port stays in br-int.\nA log line will be printed in loop in such situation so the operator will be warned about this and may take manual actions.","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"140ada1d7a2596e93ae6cfad36c6d3a9f0ec365a","unresolved":false,"context_lines":[{"line_number":2495,"context_line":"        # Assert that we have one value left in the hints"},{"line_number":2496,"context_line":"        self.assertEqual(1, len(self.agent._local_vlan_hints))"},{"line_number":2497,"context_line":""},{"line_number":2498,"context_line":"    def test_rpc_loop_hints_with_failed_devices(self):"},{"line_number":2499,"context_line":"        devices \u003d [\u0027tap1234\u0027]"},{"line_number":2500,"context_line":"        failed_devices \u003d [\u0027tap2345\u0027]"},{"line_number":2501,"context_line":"        hints \u003d {\u0027tap1234net/4242\u0027: 42, \u0027tap2345net/4242\u0027: 43}"}],"source_content_type":"text/x-python","patch_set":5,"id":"a5b11722_dce126dc","line":2498,"updated":"2023-05-04 08:31:31.000000000","message":"This could happen if neutron server is returning some failed_devices from RPC call.\nIn such situation, the hint will also stay, a log will also loop, but it may stop if the failed port stop failing at some point.\n\nAnyway, this is the main issue that brings me to write this patch, because we dont want to release the hints to available in such case, or we can endup with mixed vlan in br-int.","commit_id":"cd3f3d32c0c4f530fa2cffe7884bbc8ebee54713"}]}
