race condition between multiple plugins for neutron-api (ovn + arista)

Bug #1968763 reported by Andre Ruiz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Neutron API Arista Plugin Charm
New
Undecided
Unassigned
OpenStack Neutron API Charm
New
Undecided
Unassigned

Bug Description

When deploying both ovn and arista plugins for neutron-api, there's a race condition that prevents one or the other from appearing in the enabled mechanisms list.

Neutron-api and ovn are the standard/production ones from openstack deployments. Arista charm is only in edge channel currently: https://charmhub.io/neutron-api-plugin-arista

Please see attached example bundle.

After deploying both plugins, the ml2 configuration is the following:

[ml2]
extension_drivers=port_security
type_drivers = geneve,vlan,vxlan,flat,local
tenant_network_types = geneve,vlan,vxlan,flat,local
mechanism_drivers = ovn

It was expected to see "mechanism_drivers = ovn,arista". If I add that manually, arista plugin works (so it seems otherwise correctly configured).

Looking at relation data, it seems that the plugins are in a race condition where they take the current list of mechanisms, insert themselves in the list and send the list back, making it possible for the last one to overwrite the first one.

I tested removing the arista plugin from the bundle, then deploying it, waiting for everything to settle and then manually deploying only the arista plugin afterwards, it worked.

Revision history for this message
Andre Ruiz (andre-ruiz) wrote (last edit ):

Example bundle. (you need an arista switch at the specified IP for it to really communicate, but I think this is not really needed for this specific fix).

This bundle installs Ussuri / focal.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.