Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2242323

Summary: [OSP 16.2] Possible race condition between neutron-l3-agent and keepalived during static route deletion
Product: Red Hat OpenStack Reporter: Randy Rubins <rrubins>
Component: openstack-neutronAssignee: Rodolfo Alonso <ralonsoh>
Status: CLOSED ERRATA QA Contact: Eran Kuris <ekuris>
Severity: medium Docs Contact:
Priority: medium    
Version: 16.2 (Train)CC: anbs, chrisw, mariel, mburns, ralonsoh, scohen, tvignaud
Target Milestone: asyncKeywords: Triaged
Target Release: 16.2 (Train on RHEL 8.4)   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: openstack-neutron-15.3.5-2.20230831144917.el8ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-03-26 12:25:46 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 Randy Rubins 2023-10-05 15:12:17 UTC
Description of problem:
In ml2/ovs with l3-agent and keepalived, there seems to be a race during static route deletion: if keepalived removes the route first, then the neutron-l3-agent "ip route del" command would delete the remaining route (which is the neutron-l3-agent route), but if events happen in the reverse order, then neutron-l3-agent deletes keepalived route and its own route is never deleted.

Version-Release number of selected component (if applicable):
RHOSP 16.2 (Train), standard neutron-l3-agent container


How reproducible:
1) Add static route in neutron with L3 HA in place:
$ openstack router set a37b45d8-49fb-4281-add7-6247686f3f0f \
--route destination=1.2.3.4/32,gateway=2.3.4.5
2) On l3 agent, check routes:
# ip netns  exec qrouter-a37b45d8-49fb-4281-add7-6247686f3f0f ip route
1.2.3.4 via 2.3.4.5 dev qr-34dcdcb0-85 proto keepalived 
1.2.3.4 via 2.3.4.5 dev qr-34dcdcb0-85 
2.3.4.0/24 dev qr-34dcdcb0-85 proto kernel scope link src 2.3.4.1 
169.254.0.0/24 dev ha-600a323b-13 proto kernel scope link src 169.254.0.241 
169.254.192.0/18 dev ha-600a323b-13 proto kernel scope link src 169.254.193.208 
3) Delete the static route
$ openstack router unset a37b45d8-49fb-4281-add7-6247686f3f0f \
--route destination=1.2.3.4/32,gateway=2.3.4.5
4) On l3-agent, chekc routes:
# ip netns  exec qrouter-a37b45d8-49fb-4281-add7-6247686f3f0f ip route
1.2.3.4 via 2.3.4.5 dev qr-34dcdcb0-85  <== this route SHOULD HAVE BEEN DELETED!
2.3.4.0/24 dev qr-34dcdcb0-85 proto kernel scope link src 2.3.4.1 
169.254.0.0/24 dev ha-600a323b-13 proto kernel scope link src 169.254.0.241 
169.254.192.0/18 dev ha-600a323b-13 proto kernel scope link src 169.254.193.208 
Actual results:
Static route (not the one with 'proto keepalived') remains intact.

Expected results:
Static route should be deleted.


Additional info:
The issue is similar to the one described in https://bugs.launchpad.net/neutron/+bug/1956846, but here it's not default routes affected, but the extra routes in the Router object.

Comment 20 errata-xmlrpc 2024-03-26 12:25:46 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 (Red Hat OpenStack Platform 16.2.6 bug fix and enhancement advisory), 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/RHBA-2024:1519

Comment 21 Red Hat Bugzilla 2024-07-25 04:25:10 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 120 days