This bug was fixed in the package neutron - 2:16.4.2-0ubuntu6.3 --------------- neutron (2:16.4.2-0ubuntu6.3) focal; urgency=medium
* d/p/check-subnet-in-remove-subnet-dhcp-options.patch: Ensure dhcp_options subnet check handles dictionary correctly (LP: #1948466). * d/p/ovn-fix-untrusted-port-security-enabled-check.patch: Fix logic for check that wraps adding of port to drop port group (LP: #1939723). -- Corey Bryant <corey.bry...@canonical.com> Mon, 21 Aug 2023 15:29:46 -0400 ** Changed in: neutron (Ubuntu Focal) Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1948466 Title: [OVN] Mech driver fails to delete DHCP options during subnet deletion Status in Ubuntu Cloud Archive: Fix Released Status in Ubuntu Cloud Archive ussuri series: Fix Committed Status in neutron: Fix Released Status in neutron package in Ubuntu: Fix Released Status in neutron source package in Focal: Fix Released Bug description: == Original Bug Description == Snippet: https://paste.opendev.org/show/810168/ I can't provide a link to a CI execution, I saw this error in an internal CI. I'm still investigating when this could happen. == Ubuntu SRU Details == [Impact] During subnet deletion the check in _remove_subnet_dhcp_options() results in the following traceback (taken from pastebin above in case it disappears) if dhcp_options['subnet'] is an empty dictionary: ExternalNetworksRBACTestJSON-2078932943-project-admin] Mechanism driver 'ovn' failed in delete_subnet_postcommit: KeyError: 'uuid' Traceback (most recent call last): File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 482, in _call_on_drivers getattr(driver.obj, method_name)(context) File "/opt/stack/neutron/neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py", line 637, in delete_subnet_postcommit self._ovn_client.delete_subnet(context._plugin_context, File "/opt/stack/neutron/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 2103, in delete_subnet self._remove_subnet_dhcp_options(subnet_id, txn) File "/opt/stack/neutron/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 1971, in _remove_subnet_dhcp_options dhcp_options['subnet']['uuid'])) KeyError: 'uuid' The fix ensures this check handles a dictionary correctly. [Test Case] In case we don't have a recreate for this: 1) lxc launch ubuntu-daily:focal f1 && lxc exec f1 /bin/bash 2) sudo add-apt-repository -p proposed 3) sudo apt install python3-neutron 4) cd /usr/lib/python3/dist-packages 5) python3 -m unittest neutron.tests.unit.plugins.ml2.drivers.ovn.mech_driver.test_mech_driver.TestOVNMechanismDriver.test_remove_subnet_dhcp_options_in_ovn_ipv4 6) re-run the test in step #5 after adding 'pdb.set_trace()' to the line before the check in neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py this way we can see what dhcp_options['subnet'] is set to, ensure the check behaves correctly, and try another run with dhcp_options['subnet'] = {} 7) sudo add-apt-repository -r -p proposed [Regression Potential] This is a minimal change that is backward compatible with the previous check. The new check can still handle 'not None' in addition to handling an empty dictionary correctly. This has been fixed in Ubuntu Victoria packages (and above) since 2022-01-12, and has been fixed in the upstream stable/ussuri branch since 2021-10-25. To manage notifications about this bug go to: https://bugs.launchpad.net/cloud-archive/+bug/1948466/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp