Ghanshyam Maan 7a8adac2a1 Threading mode: check conf object picklable before 'spawn'
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>
2026-02-19 01:07:41 +00:00
2024-02-07 12:41:10 +09:00
2019-04-19 19:36:22 +00:00
2019-02-13 17:08:38 +08:00
2025-11-21 22:10:02 +09:00

oslo.service -- Library for running OpenStack services

image

Latest Version

Downloads

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.

Description
Library for running OpenStack services
Readme 53 MiB
Languages
Python 100%