99bd0c9331c901e9f1633b58f2e52a8a7aef69d3
Service.start` phase
The RPC L3 agent clients and servers should be instantiated and initalizated during the ``Service`` start phase, not during the class initalization. The L3 agent main class is handled by the ``oslo_service.Service`` class as the manager class. When the process (L3 agent) is started, the service class forks the process during the ``service.launch`` call [1]. That could lead to issues with the created RPC client/servers before the fork [2]. This patch moves all the RPC instantiation and initialization to the ``Service.start`` method, that first calls the manager ``init_host`` method. This patch must work both with the current ``oslo.service`` backend (eventlet) and the future implementation (threading) [3]. [1]a2af9b8baa/neutron/agent/l3_agent.py (L61)[2]510688d8dd/oslo_messaging/_drivers/impl_rabbit.py (L1081-L1086)[3]https://review.opendev.org/c/openstack/oslo.service/+/945720 Partial-Bug: #2087943 Change-Id: Ic8561f5b971a04b95c381daa05a071582ab4b3b5
OpenStack Neutron
Neutron is an OpenStack project to provide "network connectivity as a service" between interface devices (e.g., vNICs) managed by other OpenStack services (e.g., Nova).
To learn more about neutron:
- Documentation: https://docs.openstack.org/neutron/latest/
- Features: https://specs.openstack.org/openstack/neutron-specs
- Defects: https://launchpad.net/neutron
- Release notes: https://docs.openstack.org/releasenotes/neutron/index.html
- Source: https://opendev.org/openstack/neutron
If you would like to contribute to Neutron, please read the file CONTRIBUTING.rst or see the Neutron contributor guide:
https://docs.openstack.org/neutron/latest/contributor/contributing.html
Get in touch via email. Use [Neutron] in your subject.
Description
Languages
Python
99.7%
Shell
0.3%