Bug 2142592

Summary: AttributeError when deleting a LB using --cascade option
Product: Red Hat OpenStack Reporter: Eduardo Olivares <eolivare>
Component: ovn-bgp-agentAssignee: Luis Tomas Bolivar <ltomasbo>
Status: CLOSED ERRATA QA Contact: Eduardo Olivares <eolivare>
Severity: high Docs Contact:
Priority: high    
Version: 17.1 (Wallaby)CC: dalvarez, lmartins, ltomasbo
Target Milestone: betaKeywords: Triaged
Target Release: 17.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ovn-bgp-agent-0.3.1-1.20221116111131.4e87e63.el9ost Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-16 01:12:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Eduardo Olivares 2022-11-14 14:18:43 UTC
Description of problem:
When the following commands are executed, an exception is raised by the ovn-bgp-agent:

   openstack loadbalancer create --name provider-ovn-lbs --provider ovn --vip-subnet-id subnet-provider-flat --wait
   openstack loadbalancer listener create --name provider-ovn-lb-listener --protocol TCP --protocol-port 80 provider-ovn-lbs --wait                                                                                                     
   openstack loadbalancer pool create --name provider-ovn-lb-pool --protocol TCP --listener provider-ovn-lb-listener --lb-algorithm SOURCE_IP_PORT --wait
   openstack loadbalancer member create --name provider-ovn-lb-member --address "20.0.0.100" --subnet-id private-subnet --protocol-port 80 provider-ovn-lb-pool
 
   # the exception is raised when the following command is run
   openstack loadbalancer delete provider-ovn-lbs --cascade
 

Traceback:
2022-11-10T14:38:37.089706994+00:00 stdout F 2022-11-10 14:38:37.089 92398 DEBUG oslo_concurrency.lockutils [-] Lock "bgp" released by "ovn_bgp_agent.drivers.openstack.ovn_bgp_driver.OVNBGPDriver.withdraw_ip" :: held 0.001s inner /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:367ESC[00m
2022-11-10T14:38:40.588511691+00:00 stdout F 2022-11-10 14:38:40.586 92398 DEBUG ovsdbapp.backend.ovs_idl.event [-] Matched DELETE: OVNLBMemberUpdateEvent(events=('update', 'delete'), table='Load_Balancer', conditions=None, old_conditions=None) to row=Load_Balancer(external_ids={'lb_id': '827d4cee-b411-492f-bca3-f047608f90b9'}, name=9c5de2d7-002c-4a7a-9d46-9f304b71583d, datapaths=[<ovs.db.idl.Row object at 0x7fdc1deee9a0>, <ovs.db.idl.Row object at 0x7fdc3c085df0>], vips={'172.24.100.151:80': '20.0.0.100:80'}, protocol=['tcp'], options={'hairpin_orig_tuple': 'true'}) old= matches /usr/lib/python3.9/site-packages/ovsdbapp/backend/ovs_idl/event.py:43ESC[00m
2022-11-10T14:38:40.589805771+00:00 stdout F 2022-11-10 14:38:40.588 92398 ERROR ovsdbapp.event [-] Unexpected exception in notify_loop: AttributeError: 'NoneType' object has no attribute 'datapaths'
2022-11-10T14:38:40.589805771+00:00 stdout F 2022-11-10 14:38:40.588 92398 ERROR ovsdbapp.event Traceback (most recent call last):
2022-11-10T14:38:40.589805771+00:00 stdout F 2022-11-10 14:38:40.588 92398 ERROR ovsdbapp.event   File "/usr/lib/python3.9/site-packages/ovsdbapp/event.py", line 159, in notify_loop
2022-11-10T14:38:40.589805771+00:00 stdout F 2022-11-10 14:38:40.588 92398 ERROR ovsdbapp.event     match.run(event, row, updates)
2022-11-10T14:38:40.589805771+00:00 stdout F 2022-11-10 14:38:40.588 92398 ERROR ovsdbapp.event   File "/usr/lib/python3.9/site-packages/ovn_bgp_agent/drivers/openstack/watchers/bgp_watcher.py", line 299, in run
2022-11-10T14:38:40.589805771+00:00 stdout F 2022-11-10 14:38:40.588 92398 ERROR ovsdbapp.event     match_subnets_datapaths = [
2022-11-10T14:38:40.589805771+00:00 stdout F 2022-11-10 14:38:40.588 92398 ERROR ovsdbapp.event   File "/usr/lib/python3.9/site-packages/ovn_bgp_agent/drivers/openstack/watchers/bgp_watcher.py", line 302, in <listcomp>
2022-11-10T14:38:40.589805771+00:00 stdout F 2022-11-10 14:38:40.588 92398 ERROR ovsdbapp.event     if subnet_dp in row.datapaths or subnet_dp in old.datapaths]
2022-11-10T14:38:40.589805771+00:00 stdout F 2022-11-10 14:38:40.588 92398 ERROR ovsdbapp.event AttributeError: 'NoneType' object has no attribute 'datapaths'
2022-11-10T14:38:40.589805771+00:00 stdout F 2022-11-10 14:38:40.588 92398 ERROR ovsdbapp.event ESC[00m
2022-11-10T14:38:44.193719712+00:00 stdout F 2022-11-10 14:38:44.192 92398 DEBUG ovsdbapp.backend.ovs_idl.event [-] Matched DELETE: OVNLBMemberUpdateEvent(events=('update', 'delete'), table='Load_Balancer', conditions=None, old_conditions=None) to row=Load_Balancer(external_ids={'lb_id': '1b2cc48a-0f38-44db-ad41-a09d5d83bdf6'}, name=9892d8ee-6a76-4894-91fc-15fdad4166aa, datapaths=[<ovs.db.idl.Row object at 0x7fdc1deee9a0>, <ovs.db.idl.Row object at 0x7fdc3c085df0>], vips={'[2001:db8::f816:3eff:fe15:a267]:80': '[fdaa:4ad8:e8fb:0:f816:3eff:fe78:f964]:80'}, protocol=['tcp'], options={'hairpin_orig_tuple': 'true'}) old= matches /usr/lib/python3.9/site-packages/ovsdbapp/backend/ovs_idl/event.py:43ESC[00m
2022-11-10T14:38:44.195464433+00:00 stdout F 2022-11-10 14:38:44.194 92398 ERROR ovsdbapp.event [-] Unexpected exception in notify_loop: AttributeError: 'NoneType' object has no attribute 'datapaths'
2022-11-10T14:38:44.195464433+00:00 stdout F 2022-11-10 14:38:44.194 92398 ERROR ovsdbapp.event Traceback (most recent call last):
2022-11-10T14:38:44.195464433+00:00 stdout F 2022-11-10 14:38:44.194 92398 ERROR ovsdbapp.event   File "/usr/lib/python3.9/site-packages/ovsdbapp/event.py", line 159, in notify_loop
2022-11-10T14:38:44.195464433+00:00 stdout F 2022-11-10 14:38:44.194 92398 ERROR ovsdbapp.event     match.run(event, row, updates)
2022-11-10T14:38:44.195464433+00:00 stdout F 2022-11-10 14:38:44.194 92398 ERROR ovsdbapp.event   File "/usr/lib/python3.9/site-packages/ovn_bgp_agent/drivers/openstack/watchers/bgp_watcher.py", line 299, in run
2022-11-10T14:38:44.195464433+00:00 stdout F 2022-11-10 14:38:44.194 92398 ERROR ovsdbapp.event     match_subnets_datapaths = [
2022-11-10T14:38:44.195464433+00:00 stdout F 2022-11-10 14:38:44.194 92398 ERROR ovsdbapp.event   File "/usr/lib/python3.9/site-packages/ovn_bgp_agent/drivers/openstack/watchers/bgp_watcher.py", line 302, in <listcomp>
2022-11-10T14:38:44.195464433+00:00 stdout F 2022-11-10 14:38:44.194 92398 ERROR ovsdbapp.event     if subnet_dp in row.datapaths or subnet_dp in old.datapaths]
2022-11-10T14:38:44.195464433+00:00 stdout F 2022-11-10 14:38:44.194 92398 ERROR ovsdbapp.event AttributeError: 'NoneType' object has no attribute 'datapaths'

Comment 1 Luis Tomas Bolivar 2022-11-14 14:28:59 UTC
Fix https://review.opendev.org/c/x/ovn-bgp-agent/+/864278

Comment 16 errata-xmlrpc 2023-08-16 01:12:44 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Release of components for Red Hat OpenStack Platform 17.1 (Wallaby)), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2023:4577