Unreleased Release Notes¶
4.8.0-25¶
Deprecation Notes¶
Removal of the deprecated
oslo_service.wsgi.Serverclass and theoslo_service.sslutils,oslo_service.eventlet_backdoor, andoslo_service.fixturemodules is postponed from 2026.2 release to 2027.2 release to provide an extended migration period for consumers. These components remain deprecated.
Bug Fixes¶
oslo_service.sslutilscan now be imported when Python is built against OpenSSL 4.0, wheressl.PROTOCOL_TLSv1is not available. LP#2169555
In the threading backend, a service launched with
no_fork=Truewhosestart()fails is now stopped, and the process exits with status 1, as it exits on SIGTERM. Before, the process could hang at exit, waiting for thread pool workers that the service had started, so service managers did not restart it. See bug 2169754.
In the threading backend, a service launched with
no_fork=Truenow handles SIGHUP as therestart_methodoflaunch()says. Withmutate, the configuration files are mutated and the service is reset. Withreload, they are reloaded and the service is stopped and started again. Before, the process exited without stopping the service, and hung if one of its threads never ended, such as a timer of its thread group. A process in the foreground of a terminal now stops the service and exits on SIGHUP, as on SIGTERM.
4.8.0¶
Upgrade Notes¶
Applications relying on the threading backend’s brief automatic selection of
spawnmust now request it explicitly. Existing applications that relied on workers inheriting parent-process state keep the historicalforkbehavior.
Bug Fixes¶
The threading backend once again uses
forkby default on platforms where it is available. A service and its configuration being picklable does not guarantee that application state initialized in the parent process is available in a freshspawnworker.Applications that are fully spawn-safe can opt in with
service.launch(..., start_method="spawn"). On platforms withoutfork,spawnremains the default. Explicit spawn requests validate that the service andConfigOptscan be serialized.