Issue associating floating IP with OVN load balancer

Bug #2068644 reported by Will Szumski
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
In Progress
High
Will Szumski

Bug Description

Version: yoga

I'm seeing this failure when trying to associate a floating IP to a OVN based loadbalancer:

    Maintenance task: Failed to fix resource 990f1d44-2401-49ba-b8c5-aedf7fb0c1ec (type: floatingips): TypeError: 'NoneType' object is not iterable
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance Traceback (most recent call last):
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py", line 400, in check_for_inconsistencies
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance self._fix_create_update(admin_context, row)
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py", line 239, in _fix_create_update
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance res_map['ovn_create'](context, n_obj)
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/maintenance.py", line 467, in _create_floatingip_and_pf
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance self._ovn_client.create_floatingip(context, floatingip)
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 1201, in create_floatingip
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance LOG.error('Unable to create floating ip in gateway '
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance File "/var/lib/kolla/venv/lib/python3.9/site-packages/oslo_utils/excutils.py", line 227, in __exit__
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance self.force_reraise()
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance File "/var/lib/kolla/venv/lib/python3.9/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance raise self.value
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 1197, in create_floatingip
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance self._create_or_update_floatingip(floatingip, txn=txn)
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance File "/var/lib/kolla/venv/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 1007, in _create_or_update_floatingip
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance commands.extend(
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance TypeError: 'NoneType' object is not iterable
    2024-06-06 15:25:22.565 40 ERROR neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.maintenance

Unsure if that is masking another issue, but seems like even in master _handle_lb_fip_cmds can return None e.g:

https://github.com/openstack/neutron/blob/11027e3e1ef9a58d5b2faa575a3764bd33cd2a08/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py#L975

Unsure of the consqeuences of returning an empty list instead. Would that allow floating IP association to succeed?

Tags: ovn
Revision history for this message
Brian Haley (brian-haley) wrote :

I can only guess that line was supposed to be:

    if not ls_linked:
        continue

So that the next LB is tried. I don't think anything has changed in this code patch since it was committed.

If you could try that and see it would help as I don't remember seeing this before.

tags: added: ovn
Revision history for this message
Will Szumski (willjs) wrote :

Thanks Brian. I can confirm that:

    if not ls_linked:
        continue

Fixed the issue for us. Makes total sense as there were several load balancers using this router.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/921663

Changed in neutron:
status: New → In Progress
Changed in neutron:
importance: Undecided → High
assignee: nobody → Will Szumski (willjs)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.