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

-- 
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

Reply via email to