In _select_service_manager_context(), it only checks service instance object for picklable and select multiprocessing start method as 'spawn'. But it did not check if the conf object is picklable or not. The conf object is passed by the cotyledon (via hook registered by ``oslo_config_glue.link()``) to multiprocessing. Multiprocessing checks if that conf object is not picklable or not. In neutron case( bug #2142122), oslo.service checked service instance and it was picklable so it selected the 'spawn' method but further multiprocessing failed when it checked the conf object which is not picklable. We should check both service instance and conf object for picklable and then only select the 'spawn' method otherwise 'fork'. It also improves the log warning and adds more debug logs. Closes-Bug: #2142122 Change-Id: I18eb16cbf0c9d7a4714d5bb2752c0603f35d9d63 Signed-off-by: Ghanshyam Maan <gmaan.os14@gmail.com>
oslo.service -- Library for running OpenStack services
oslo.service provides a framework for defining new long-running services using the patterns established by other OpenStack applications. It also includes utilities long-running applications might need for working with SSL or WSGI, performing periodic operations, interacting with systemd, etc.
- Free software: Apache license
- Documentation: https://docs.openstack.org/oslo.service/latest/
- Source: https://opendev.org/openstack/oslo.service
- Bugs: https://bugs.launchpad.net/oslo.service
- Release notes: https://docs.openstack.org/releasenotes/oslo.service/
Description
Languages
Python
100%