[Bug 2126923] Re: ovn_dhcp4_global_options doesn't support keys with a list of values
Leah Goldberg
2126923 at bugs.launchpad.net
Fri Mar 20 18:16:42 UTC 2026
During SRU verification, I was unable to reliably reproduce the reported
neutron-server startup "crash" when configuring multiple DHCP option
values in ovn_dhcp4_global_options.
Upon further analysis, this change primarily affects how DHCP option
values are parsed and translated before being sent to OVN, rather than
consistently triggering a service failure. In particular, the fix
introduces support for multiple values per key (separated by ;) and
ensures they are formatted correctly for OVN (e.g. {val1, val2}).
Given this, I will be updating the Test Plan to validate the behavior
change directly by:
* configuring multiple DHCP option values in ml2_conf.ini
* restarting the neutron service
* creating a network and subnet to trigger DHCP option application
* verifying in the OVN Northbound database that values are correctly formatted
Before applying the fix, multiple values remain unparsed (e.g.
wpad="1.2.3.5;1.2.3.6"). After the fix, these should be rendered in OVN-
compatible list format (e.g. wpad="{1.2.3.5, 1.2.3.6}").
This updated approach will ensure the patched code path is properly
exercised and validated.
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to Ubuntu Cloud Archive.
https://bugs.launchpad.net/bugs/2126923
Title:
ovn_dhcp4_global_options doesn't support keys with a list of values
Status in Ubuntu Cloud Archive:
Fix Committed
Status in Ubuntu Cloud Archive caracal series:
Fix Committed
Status in Ubuntu Cloud Archive dalmatian series:
Fix Committed
Status in Ubuntu Cloud Archive epoxy series:
Fix Committed
Status in Ubuntu Cloud Archive flamingo series:
Fix Committed
Status in neutron:
Fix Released
Status in neutron package in Ubuntu:
Fix Committed
Status in neutron source package in Noble:
Fix Committed
Status in neutron source package in Questing:
Fix Committed
Bug description:
[ Impact ]
* The Neutron configuration option `ovn_dhcp4_global_options` does not
correctly support multiple values for DHCP keys. When multiple values are
specified the neutron-server fails while parsing the configuration and does
not start.
* Backporting this fix would allow users to list multiple values in the
`ovn_dhcp4_global_options` without requiring configuration workarounds.
* The uploaded fix allows the config file, `ml2_conf.ini`, to correctly handle
multiple values in `ovn_dhcp4_global_options`.
[ Test Plan ]
* [0] The following versions of Ubuntu-OpenStack will be tested
- UCA: jammy-caracal
- UCA: noble-dalmatian
- UCA: noble-epoxy
- UCA: noble-flamingo
- LTS: noble-caracal
- LTS: questing-flamingo
* [1] Deploy an OpenStack environment on the target series using regress-stack
in a multipass VM.
For Jammy/Noble, it can be set up following the instructions on the
regress-stack README.md.
For Questing, follow these instructions:
https://github.com/canonical/se-wiki/wiki/Regress-Stack-How-to
* [2] Check the status of the neutron server to see that it is active/running
Jammy/Noble: sudo systemctl status neutron-server
Questing: sudo systemctl status neutron-rpc-server.service
* [3] Edit the `ml2_conf.ini` file and change `ovn_dhcp4_global_options` to
contain multiple values like `ovn_dhcp4_global_options = foo.bar;baz.qux`
* [4] Stop the neutron-server
Jammy/Noble: sudo systemctl stop neutron-server
Questing: sudo systemctl stop neutron-rpc-server.service
* [5] Start the neutron-server and watch it fail to start
Jammy/Noble: sudo systemctl start neutron-server
Questing: sudo systemctl start neutron-rpc-server.service
* [6] Apply the patch.
* [7] Stop, start, and check status of neutron-server again.
Before the patch, it will not start correctly.
After the patch, it should start correctly.
[ Where problems could occur ]
* This change modifies how `ovn_dhcp4_global_options` options are parsed. A
regression could possibly cause a failure to apply DHCP options all together
due to an incorrect formatting in options sent to OVN.
[ Other Info ]
* Upstream commit to neutron (master):
https://review.opendev.org/c/openstack/neutron/+/963944
===========================================================
[ Original Bug Description ]
When using `ovn_dhcp4_global_options` under `[ovn]` in `ml2_conf.ini` it will cause `neutron server` to crash when attempting to parse the configuration if a key provided contains a list seperated by commas.
For example if setting `domain_search_list` with more than one domain.
```
[ovn]
ovn_dhcp4_global_options = domain_search_list:foo.bar,baz.qux
```
Expected output would be that `neutron server` doesn't crash when
attempting to parse such configuration and correctly applies these
options within `OVN`.
Experienced within OpenStack Epoxy.
Not currently blocking anything as it is possible to patch
`_get_ovn_dhcpv4_opts` in
`neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py` with
the following
```
options['domain_search_list'] = "\"foo.bar,baz.qux\""
```
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/2126923/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list