← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 2087939] [NEW] [eventlet-deprecation] Remove the usage of eventlet in the OVS agent

 

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