← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1927977] [NEW] OVN IDLs not initialized for all worker types

 

Public bug reported:

Since neutron commit "Rely on worker count for HashRing caching"
(https://opendev.org/openstack/neutron/commit/c4007b0833111a25d24f597161d39ee9ccd37189)
post_fork_initialize is only executed for API and maintenance workers.
This means for other worker types the OVN IDLs are not initialized
anymore.

I'm working on an implementation of VPNaaS for OVN (https://bugs.launchpad.net/neutron/+bug/1905391) and plan to add an OVN VPN agent whose liveness is checked in a similar way to the OVN metadata agent. A PeriodicWorker regularly checks the agent list to find dead agents. But to have the get_agents method include the OVN agents the PeriodicWorker needs the OVN IDLs and the AgentCache. Both were set up in post_fork_initialize, but now they are not.
Secondly our proposed implementation of OVN VPN agent will still make use of rabbitmq RPCs to sync the VPN service settings. The controller implements some RPC methods that may also need access to the AgentCache. So also the RpcWorker might need post_fork_initialize to set up the OVN IDLs and AgentCache.

If I did not overlook something it could be fine to go back to run
post_fork_initialize for all worker types. The main intention of the
"Rely on worker count for HashRing caching" commit was to only add the
API worker to the hash ring and that's still the case because of a
respective "if" in post_fork_initialize.

** 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/1927977

Title:
  OVN IDLs not initialized for all worker types

Status in neutron:
  New

Bug description:
  Since neutron commit "Rely on worker count for HashRing caching"
  (https://opendev.org/openstack/neutron/commit/c4007b0833111a25d24f597161d39ee9ccd37189)
  post_fork_initialize is only executed for API and maintenance workers.
  This means for other worker types the OVN IDLs are not initialized
  anymore.

  I'm working on an implementation of VPNaaS for OVN (https://bugs.launchpad.net/neutron/+bug/1905391) and plan to add an OVN VPN agent whose liveness is checked in a similar way to the OVN metadata agent. A PeriodicWorker regularly checks the agent list to find dead agents. But to have the get_agents method include the OVN agents the PeriodicWorker needs the OVN IDLs and the AgentCache. Both were set up in post_fork_initialize, but now they are not.
  Secondly our proposed implementation of OVN VPN agent will still make use of rabbitmq RPCs to sync the VPN service settings. The controller implements some RPC methods that may also need access to the AgentCache. So also the RpcWorker might need post_fork_initialize to set up the OVN IDLs and AgentCache.

  If I did not overlook something it could be fine to go back to run
  post_fork_initialize for all worker types. The main intention of the
  "Rely on worker count for HashRing caching" commit was to only add the
  API worker to the hash ring and that's still the case because of a
  respective "if" in post_fork_initialize.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1927977/+subscriptions


Follow ups