[Bug 2156391] Re: Octavia fails on deploy Debian 13
Guillaume Boutry
2156391 at bugs.launchpad.net
Mon Sep 21 06:39:05 UTC 2026
** Also affects: octavia (Ubuntu)
Importance: Undecided
Status: New
** Also affects: octavia (Ubuntu Resolute)
Importance: Undecided
Status: New
** Also affects: octavia (Ubuntu Stonking)
Importance: Undecided
Status: New
** Changed in: octavia (Ubuntu Stonking)
Status: New => Invalid
** Description changed:
+ [Impact]
+
+ Python 3.14 changed the default multiprocessing start method on Linux from
+ fork to forkserver. Octavia child processes no longer inherit the parsed
+ configuration from the parent process.
+
+ As a result, octavia-health-manager can connect to the default SQLite database
+ instead of the database configured in octavia.conf. The same issue affects
+ octavia-driver-agent and amphora-agent.
+
+ [Test Case]
+
+ 1. Install the proposed package on a system running Python 3.14.
+
+ 2. Create a temporary Octavia configuration:
+
+ mkdir -p /tmp/octavia-sru
+ cat >/tmp/octavia-sru/octavia.conf <<EOF
+ [DEFAULT]
+ log_dir = /tmp/octavia-sru
+ transport_url = rabbit://invalid:invalid@127.0.0.1:5672/
+
+ [database]
+ connection = sqlite:////tmp/octavia-sru/configured.sqlite
+ EOF
+
+ 3. Start the health manager while tracing file access:
+
+ strace -ff -o /tmp/octavia-sru/trace -e trace=file \
+ octavia-health-manager \
+ --config-file /tmp/octavia-sru/octavia.conf
+
+ Allow the service to start for approximately 10 seconds, then stop
+ it.
+
+ 4. Inspect the trace files:
+
+ grep -hE 'configured.sqlite|octavia.sqlite|sqlite' \
+ /tmp/octavia-sru/trace*
+
+ 5. With the unfixed package, the child processes attempt to access the default
+ Octavia SQLite database rather than the configured database.
+
+ 6. With the proposed package, the child processes use:
+
+ /tmp/octavia-sru/configured.sqlite
+
+ and do not access the default octavia.sqlite database.
+
+ 7. Start octavia-driver-agent with the same configuration and verify that its
+ listener processes start without multiprocessing errors.
+
+ 8. If an amphora image is rebuilt with the proposed package, start
+ amphora-agent and verify that the agent starts without multiprocessing
+ errors and uses its configured settings.
+
+ [Regression Potential]
+
+ The change affects process creation in octavia-health-manager,
+ octavia-driver-agent, and amphora-agent. A regression could prevent child
+ processes from starting, affect process shutdown, or cause daemon-specific
+ configuration to be unavailable in child processes.
+
+ The patch changes only the multiprocessing context used to create child
+ processes, explicitly selecting fork on Linux. Existing daemon startup,
+ shutdown, and unit tests should be run. Amphora-agent validation requires an
+ amphora image rebuilt with the proposed package.
+
+ [Other Info]
+ This is reverting to pre-3.14 default multiprocessing context.
+ This has been fixed across the openstack ecosystem for the hibiscus release (stonking)
+
+
+ --- Original description
OpenStack 2026.1 or 2026.2
Debian 13
Python 3.14
CI test:
https://review.opendev.org/c/openstack/openstack-ansible-os_octavia/+/992498
Details:
https://zuul.opendev.org/t/openstack/build/b4e551ae920e4099a68b67dde31a8c9b/log/logs/host/octavia-worker.service.journal-17-27-02.log.txt
https://zuul.opendev.org/t/openstack/build/b4e551ae920e4099a68b67dde31a8c9b/log/logs/host/octavia-health-manager.service.journal-17-27-02.log.txt
** Summary changed:
- Octavia fails on deploy Debian 13
+ [SRU] octavia: Fix multiprocessing configuration inheritance with Python 3.14
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to octavia in Ubuntu.
https://bugs.launchpad.net/bugs/2156391
Title:
[SRU] octavia: Fix multiprocessing configuration inheritance with
Python 3.14
Status in octavia:
Fix Released
Status in octavia package in Ubuntu:
Invalid
Status in octavia source package in Resolute:
New
Status in octavia source package in Stonking:
Invalid
Bug description:
[Impact]
Python 3.14 changed the default multiprocessing start method on Linux from
fork to forkserver. Octavia child processes no longer inherit the parsed
configuration from the parent process.
As a result, octavia-health-manager can connect to the default SQLite database
instead of the database configured in octavia.conf. The same issue affects
octavia-driver-agent and amphora-agent.
[Test Case]
1. Install the proposed package on a system running Python 3.14.
2. Create a temporary Octavia configuration:
mkdir -p /tmp/octavia-sru
cat >/tmp/octavia-sru/octavia.conf <<EOF
[DEFAULT]
log_dir = /tmp/octavia-sru
transport_url = rabbit://invalid:invalid@127.0.0.1:5672/
[database]
connection = sqlite:////tmp/octavia-sru/configured.sqlite
EOF
3. Start the health manager while tracing file access:
strace -ff -o /tmp/octavia-sru/trace -e trace=file \
octavia-health-manager \
--config-file /tmp/octavia-sru/octavia.conf
Allow the service to start for approximately 10 seconds, then stop
it.
4. Inspect the trace files:
grep -hE 'configured.sqlite|octavia.sqlite|sqlite' \
/tmp/octavia-sru/trace*
5. With the unfixed package, the child processes attempt to access the default
Octavia SQLite database rather than the configured database.
6. With the proposed package, the child processes use:
/tmp/octavia-sru/configured.sqlite
and do not access the default octavia.sqlite database.
7. Start octavia-driver-agent with the same configuration and verify that its
listener processes start without multiprocessing errors.
8. If an amphora image is rebuilt with the proposed package, start
amphora-agent and verify that the agent starts without multiprocessing
errors and uses its configured settings.
[Regression Potential]
The change affects process creation in octavia-health-manager,
octavia-driver-agent, and amphora-agent. A regression could prevent child
processes from starting, affect process shutdown, or cause daemon-specific
configuration to be unavailable in child processes.
The patch changes only the multiprocessing context used to create child
processes, explicitly selecting fork on Linux. Existing daemon startup,
shutdown, and unit tests should be run. Amphora-agent validation requires an
amphora image rebuilt with the proposed package.
[Other Info]
This is reverting to pre-3.14 default multiprocessing context.
This has been fixed across the openstack ecosystem for the hibiscus release (stonking)
--- Original description
OpenStack 2026.1 or 2026.2
Debian 13
Python 3.14
CI test:
https://review.opendev.org/c/openstack/openstack-ansible-os_octavia/+/992498
Details:
https://zuul.opendev.org/t/openstack/build/b4e551ae920e4099a68b67dde31a8c9b/log/logs/host/octavia-worker.service.journal-17-27-02.log.txt
https://zuul.opendev.org/t/openstack/build/b4e551ae920e4099a68b67dde31a8c9b/log/logs/host/octavia-health-manager.service.journal-17-27-02.log.txt
To manage notifications about this bug go to:
https://bugs.launchpad.net/octavia/+bug/2156391/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list