)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"552d2e99da2c01e05325396e86961b4081d3f995","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f5394092_6fd7b48d","updated":"2024-12-18 09:41:00.000000000","message":"😢","commit_id":"f6531d2ecaf93f104db56e7f76718a7b6182c525"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"d5331d8e6106e466181aa62120c3b37ad39ead66","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"92a5cda3_87e8667a","updated":"2024-12-19 07:48:00.000000000","message":"looks like related to this change:\n\nneutron.plugins.ml2.drivers.openvswitch.agent.openflow.native.ofswitch.OpenFlowSwitchMixin._send_msg.\u003clocals\u003e.TimeoutException: An unknown exception occurred.","commit_id":"a5a13f2e10c230766f11e1d7cb8252139af61116"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f2af8e4a6d2a62c04a0d2f289b232d54e7027add","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"4b6a8dd6_e2a6636b","updated":"2024-12-31 13:59:08.000000000","message":"recheck may be related Datapath Invalid 147379930878536","commit_id":"8f0796602723117db38007ab141e539972dc378d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7b4346abd0eff090256f84e3b7c4f3f0cf0a0001","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"13f62588_026cdca2","updated":"2025-01-01 15:29:38.000000000","message":"recheck unknown dpid 121355108593984","commit_id":"8f0796602723117db38007ab141e539972dc378d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"2bd1a4dabeb42f4327d08c3e4662d1fd994f2ffa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0331ea47_900ee6c0","updated":"2025-01-06 17:27:31.000000000","message":"https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_448/937765/9/check/neutron-tempest-plugin-openvswitch/448e7cb/job-output.txt","commit_id":"a0b05fab8d771e84129c797487a0e0c9e6cfd531"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"7c7a18f6cba244093fe584119029df6bbe1a007d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"dc305ee8_4c824669","updated":"2025-01-13 09:11:27.000000000","message":"recheck","commit_id":"a782c194f22c35ed59f00d10250e8e1a1bd2af1e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1caa39c2e47d8e818e2a53f5b0ff3684267fc99d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"2b680716_28b59525","updated":"2025-01-13 11:56:28.000000000","message":"OFMonitor is inheriting from async_process.AsyncProcess, that is still using eventlet","commit_id":"f36311b388ad25cc0b432b01d5caab3ab3448dd0"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4099218855c9bb72af757d028c9f197a752a8d19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"a7e3ced2_57875039","updated":"2025-01-13 11:57:08.000000000","message":"Same with InterfacePollingMinimizer._is_polling_required","commit_id":"f36311b388ad25cc0b432b01d5caab3ab3448dd0"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"ec907444bc657e495aca02e465795ce152360b24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"44946e7e_74a0160b","in_reply_to":"2b680716_28b59525","updated":"2025-01-15 13:55:06.000000000","message":"https://review.opendev.org/c/openstack/neutron/+/939348","commit_id":"f36311b388ad25cc0b432b01d5caab3ab3448dd0"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"16adbe497e22ddf7351ea94aaceb85da28fb8283","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":53,"id":"f1629cbe_3c3e8369","updated":"2025-02-07 12:24:18.000000000","message":"recheck forme","commit_id":"7ffaf327a92b5022846cdb3c6c583726d9ff361a"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"abf1bf2169c7f61bcc498a93236429a73f6540dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"191a5bac_be517c27","updated":"2025-02-11 07:25:02.000000000","message":"recheck","commit_id":"9544ef548516c9b73abf9aa8a42278e6bfb8722b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"56f86c940af0803ff1cce5d28791d0f3ed3a2577","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"1f673222_98ac1802","updated":"2025-02-12 09:17:04.000000000","message":"recheck","commit_id":"9544ef548516c9b73abf9aa8a42278e6bfb8722b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"aca54041bc5627795abbe6b359e294fa7014ed20","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"a41fc915_8f432e6a","updated":"2025-02-11 10:38:35.000000000","message":"recheck","commit_id":"9544ef548516c9b73abf9aa8a42278e6bfb8722b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"f8505231d40249b75ffa3c6619d51124dc8bebe3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"de415468_16944693","updated":"2025-02-11 13:39:26.000000000","message":"recheck","commit_id":"9544ef548516c9b73abf9aa8a42278e6bfb8722b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"e0b0ea1c8e6cb708ef11ab3a03e8f146328eb8f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":57,"id":"7884e8aa_569fbd22","updated":"2025-02-11 16:19:59.000000000","message":"recheck test_network_basic_ops, test_in_tenant_traffic","commit_id":"9544ef548516c9b73abf9aa8a42278e6bfb8722b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"dad612934e6afaccc34d73eab37ade6a1b9874e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":63,"id":"7cdd0f27_324301f9","updated":"2025-02-18 15:18:26.000000000","message":"recheck","commit_id":"a215df8cb0ad9d8ceca3b705257c603984af830f"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"a0526cb1c207382d04ac436ffe1f578344b32a95","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":64,"id":"b51f429d_16c851e9","updated":"2025-02-18 20:10:29.000000000","message":"recheck","commit_id":"653c6c5e46b7152cecdaa4161ed1d1d838b26a4b"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c57a9a9d5670d090b2b8b07479dde14310717170","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":65,"id":"e428b592_eb16c98e","updated":"2025-02-19 08:03:21.000000000","message":"recheck","commit_id":"a699fc8d6ee10757d35497b107ad978704fa0672"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"36be5d28303b6e9af46b832396d1dbdc80a5b9ed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":66,"id":"2a2e7394_d17c0bc0","updated":"2025-02-19 21:16:07.000000000","message":"recheck","commit_id":"dc88a86a273d920260f106e81568f5561e7b5614"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"5a52d44f2db77695da721c36d2045f8d91e08450","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":66,"id":"96c45f88_7334d762","updated":"2025-02-20 08:01:00.000000000","message":"recheck","commit_id":"dc88a86a273d920260f106e81568f5561e7b5614"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"9112483a2925457b769303bc735a1acdc775d2bd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":77,"id":"7e79bacc_3c3cf457","updated":"2025-06-18 17:55:28.000000000","message":"I was able to drop finally to a devstack just to see where we are.\n* nit: for me I have to install cotyledon manually, not sure who should depend on it (I suppose oslo.service, I dunno why it was not installed)\n* I have this line in ovs-agent log: \"The native implementation is incomplete and should not be used in production environments\", so this should be highlighted before we do release :-)\n* I still see this line in the ovs-agent log: Loading backend: eventlet , which is strange.\n* but few lines after: \"Std library socket module is not patched by eventlet. Using socket module as imported from std library.\"\n*","commit_id":"77641e2bdad01d5c0a5aabae571a049d19c48a45"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"f40ab1af6a8c4dcf111313cbf7fbd3ccfb53bd74","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":79,"id":"30f9981b_944fbdd4","updated":"2025-06-26 11:24:30.000000000","message":"recheck neutron-tempest-plugin-openvswitch","commit_id":"3f1bb9545dad73ee918bc2c5dbc5585735df3cb4"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"821183c5d91f090e76450a6d9c776594076b64b4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":81,"id":"36f8074e_c7ffce71","updated":"2025-07-10 15:40:07.000000000","message":"This Broke the sfc jobs as ovs agent crashing there, see https://storage.bhs.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_b13/openstack/b13fbba36a314fd49a95ddcc07dbbd00/controller/logs/screen-q-agt.txt","commit_id":"ad927935ab5868486824c02c478664194e474631"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"9cbe3df6fb105853d1e2c87e789e4bc2eba2ca59","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":81,"id":"99add006_0ed4b8de","in_reply_to":"36f8074e_c7ffce71","updated":"2025-07-10 15:44:23.000000000","message":"Reported https://bugs.launchpad.net/neutron/+bug/2116337","commit_id":"ad927935ab5868486824c02c478664194e474631"}],"neutron/cmd/ovs_neutron_agent.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"1b8443882d751621e34002eccf42c0011e6214ee","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":76,"id":"241ed640_3092bb4a","side":"PARENT","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":6},"updated":"2025-06-16 06:48:35.000000000","message":"We need to manually enforce the ``oslo.service`` \"threading\" backend, same as in other agents.","commit_id":"f70a2fde6b6a0d341e114dbca4bb46affa63be70"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"17886a34eb9d5d2b652bfec3dd23e6d1e9d48979","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":76,"id":"ff5ae3f1_b832998a","side":"PARENT","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":6},"in_reply_to":"241ed640_3092bb4a","updated":"2025-06-27 09:26:02.000000000","message":"Done","commit_id":"f70a2fde6b6a0d341e114dbca4bb46affa63be70"}],"neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ofswitch.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"401306ac62acf03a0eb1b07833be5a5649746744","unresolved":true,"context_lines":[{"line_number":91,"context_line":"                  active_bundle\u003dNone):"},{"line_number":92,"context_line":"        timeout_sec \u003d cfg.CONF.OVS.of_request_timeout"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        print(timeout_sec)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        class TimeoutException(exceptions.NeutronException):"},{"line_number":97,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"a8153e40_c09e9237","line":94,"updated":"2024-12-19 09:10:39.000000000","message":";-)","commit_id":"a5a13f2e10c230766f11e1d7cb8252139af61116"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"320f8833e7578f9ada68e6b9967c36028ea5b73f","unresolved":false,"context_lines":[{"line_number":91,"context_line":"                  active_bundle\u003dNone):"},{"line_number":92,"context_line":"        timeout_sec \u003d cfg.CONF.OVS.of_request_timeout"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        print(timeout_sec)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"        class TimeoutException(exceptions.NeutronException):"},{"line_number":97,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"ec0629e8_0b1c5795","line":94,"in_reply_to":"a8153e40_c09e9237","updated":"2025-01-15 13:54:41.000000000","message":"Done","commit_id":"a5a13f2e10c230766f11e1d7cb8252139af61116"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"60214cf313041367b4b1c550c054fa6fe8bd1059","unresolved":true,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import functools"},{"line_number":18,"context_line":"import secrets"},{"line_number":19,"context_line":"import signal"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import netaddr"},{"line_number":22,"context_line":"from neutron_lib import exceptions"}],"source_content_type":"text/x-python","patch_set":10,"id":"a02eec7b_78886dc7","line":19,"updated":"2025-01-06 15:08:14.000000000","message":"not that signal based timeout are not generaly thread safe.\nyou regesiter a signal handelper per process i belive \nand it does not work on windows (yes we more or less shave removed windows supprot but jsut pointign that out)","commit_id":"a0b05fab8d771e84129c797487a0e0c9e6cfd531"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"320f8833e7578f9ada68e6b9967c36028ea5b73f","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import functools"},{"line_number":18,"context_line":"import secrets"},{"line_number":19,"context_line":"import signal"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import netaddr"},{"line_number":22,"context_line":"from neutron_lib import exceptions"}],"source_content_type":"text/x-python","patch_set":10,"id":"e46f940a_d8c7c05b","line":19,"in_reply_to":"a02eec7b_78886dc7","updated":"2025-01-15 13:54:41.000000000","message":"Done","commit_id":"a0b05fab8d771e84129c797487a0e0c9e6cfd531"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"60214cf313041367b4b1c550c054fa6fe8bd1059","unresolved":true,"context_lines":[{"line_number":102,"context_line":"            msg \u003d ofpp.ONFBundleAddMsg(dp, active_bundle[\u0027id\u0027],"},{"line_number":103,"context_line":"                                       active_bundle[\u0027bundle_flags\u0027], msg, [])"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        signal.signal(signal.SIGALRM, timeout_handler)"},{"line_number":106,"context_line":"        signal.alarm(timeout_sec)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            result \u003d self._send_msg_retry(self._app, msg, reply_cls,"},{"line_number":110,"context_line":"                                          reply_multi)"}],"source_content_type":"text/x-python","patch_set":10,"id":"474d5c26_89066c00","line":107,"range":{"start_line":105,"start_character":7,"end_line":107,"end_character":1},"updated":"2025-01-06 15:08:14.000000000","message":"this is not really a good replacement for eventlet.timeout as this is not thread safe.\n\nyou can only have one signel handler per singal registered at at a time\nso you would need to have a mutext around every place you register a singlan handler like this so this is not a generic pattern that can be used to replace eventlet.timeout\n\nit would be better to either pass the timeout to the external libary i.e os_ken and have it propatate it or dispatch this to a thread pool and wait on a future with a time out. i.e. result\u003dfut.result(timeout\u003dtimeout)\n\nusing future and threadpools is thread safe.","commit_id":"a0b05fab8d771e84129c797487a0e0c9e6cfd531"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"320f8833e7578f9ada68e6b9967c36028ea5b73f","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            msg \u003d ofpp.ONFBundleAddMsg(dp, active_bundle[\u0027id\u0027],"},{"line_number":103,"context_line":"                                       active_bundle[\u0027bundle_flags\u0027], msg, [])"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        signal.signal(signal.SIGALRM, timeout_handler)"},{"line_number":106,"context_line":"        signal.alarm(timeout_sec)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            result \u003d self._send_msg_retry(self._app, msg, reply_cls,"},{"line_number":110,"context_line":"                                          reply_multi)"}],"source_content_type":"text/x-python","patch_set":10,"id":"d787c241_7f1c4d19","line":107,"range":{"start_line":105,"start_character":7,"end_line":107,"end_character":1},"in_reply_to":"43dacb40_4e2499a3","updated":"2025-01-15 13:54:41.000000000","message":"Done","commit_id":"a0b05fab8d771e84129c797487a0e0c9e6cfd531"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"2ff9070a6790052a3d7aa8cbc504ee60bbab3141","unresolved":true,"context_lines":[{"line_number":102,"context_line":"            msg \u003d ofpp.ONFBundleAddMsg(dp, active_bundle[\u0027id\u0027],"},{"line_number":103,"context_line":"                                       active_bundle[\u0027bundle_flags\u0027], msg, [])"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        signal.signal(signal.SIGALRM, timeout_handler)"},{"line_number":106,"context_line":"        signal.alarm(timeout_sec)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        try:"},{"line_number":109,"context_line":"            result \u003d self._send_msg_retry(self._app, msg, reply_cls,"},{"line_number":110,"context_line":"                                          reply_multi)"}],"source_content_type":"text/x-python","patch_set":10,"id":"43dacb40_4e2499a3","line":107,"range":{"start_line":105,"start_character":7,"end_line":107,"end_character":1},"in_reply_to":"474d5c26_89066c00","updated":"2025-01-06 16:29:29.000000000","message":"Right I was working on a new impl","commit_id":"a0b05fab8d771e84129c797487a0e0c9e6cfd531"}],"neutron/services/trunk/drivers/openvswitch/agent/ovsdb_handler.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"036127e51356bd769fda576aab57eabbbb491c6d","unresolved":true,"context_lines":[{"line_number":141,"context_line":"                # As there is active waiting for port to appear, it\u0027s handled"},{"line_number":142,"context_line":"                # in a separate thread."},{"line_number":143,"context_line":"                # NOTE: port_name is equal to bridge_name at this point."},{"line_number":144,"context_line":"                threading.spawn_n(self.handle_trunk_add, port_name)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        for port_event in ovsdb_events[\u0027removed\u0027]:"},{"line_number":147,"context_line":"            bridge_name \u003d port_event[\u0027external_ids\u0027].get(\u0027bridge_name\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"0a80f074_206436c9","line":144,"range":{"start_line":144,"start_character":26,"end_line":144,"end_character":33},"updated":"2024-12-17 15:12:07.000000000","message":"This doesn\u0027t exit in threading.","commit_id":"1d9468640670d7e2ac9f08a864f60da5a4a39a5d"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"552d2e99da2c01e05325396e86961b4081d3f995","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                # As there is active waiting for port to appear, it\u0027s handled"},{"line_number":142,"context_line":"                # in a separate thread."},{"line_number":143,"context_line":"                # NOTE: port_name is equal to bridge_name at this point."},{"line_number":144,"context_line":"                threading.spawn_n(self.handle_trunk_add, port_name)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        for port_event in ovsdb_events[\u0027removed\u0027]:"},{"line_number":147,"context_line":"            bridge_name \u003d port_event[\u0027external_ids\u0027].get(\u0027bridge_name\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3027026d_9c0ce720","line":144,"range":{"start_line":144,"start_character":26,"end_line":144,"end_character":33},"in_reply_to":"0a80f074_206436c9","updated":"2024-12-18 09:41:00.000000000","message":"Done","commit_id":"1d9468640670d7e2ac9f08a864f60da5a4a39a5d"}]}
