Public bug reported: References: * https://etherpad.opendev.org/p/oct2024-ptg-neutron * https://etherpad.opendev.org/p/neutron-eventlet-deprecation
Remove the import and usage of the eventlet library in the OVS agent. ============================================================ It is spawned using the ``os-ken`` AppManager application loader, that is based in ``eventlet``. The OVS agent interacts with th OVS OF rules using ``os-ken``. When this library is used, it is needed to adapt the main process to run with it. ``os-ken`` uses a hub of threads; one of them is the main application (the OVS agent), other thread is the OF status and the other thread attending the OF commands form the main application. This library has been only tested with ``eventlet``. The hub is adapted to accept monkey patched applications (https://github.com/openstack/os- ken/blob/27601346896b215d270dec647902d028dc97808e/os_ken/lib/hub.py#L29). It is supposed to work with normal threads but, as commented, that has never been tested in the Neutron CI. The native OF library (that uses ``os-ken``), uses ``eventlet.Timeout``: https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ofswitch.py#L93. The OVS firewall add a sleep call to yield to other greenthreads: https://github.com/openstack/neutron/blob/04e9efec78fe308b50f6f1eab8b24f29f3164684/neutron/agent/linux/openvswitch_firewall/firewall.py#L885 ** Affects: neutron Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/2087939 Title: [eventlet-deprecation] Remove the usage of eventlet in the OVS agent Status in neutron: New Bug description: References: * https://etherpad.opendev.org/p/oct2024-ptg-neutron * https://etherpad.opendev.org/p/neutron-eventlet-deprecation Remove the import and usage of the eventlet library in the OVS agent. ============================================================ It is spawned using the ``os-ken`` AppManager application loader, that is based in ``eventlet``. The OVS agent interacts with th OVS OF rules using ``os-ken``. When this library is used, it is needed to adapt the main process to run with it. ``os-ken`` uses a hub of threads; one of them is the main application (the OVS agent), other thread is the OF status and the other thread attending the OF commands form the main application. This library has been only tested with ``eventlet``. The hub is adapted to accept monkey patched applications (https://github.com/openstack/os- ken/blob/27601346896b215d270dec647902d028dc97808e/os_ken/lib/hub.py#L29). It is supposed to work with normal threads but, as commented, that has never been tested in the Neutron CI. The native OF library (that uses ``os-ken``), uses ``eventlet.Timeout``: https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ofswitch.py#L93. The OVS firewall add a sleep call to yield to other greenthreads: https://github.com/openstack/neutron/blob/04e9efec78fe308b50f6f1eab8b24f29f3164684/neutron/agent/linux/openvswitch_firewall/firewall.py#L885 To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/2087939/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

