Merge "Fix race condition in cascade delete" into stable/2024.1
This commit is contained in:
@@ -113,9 +113,6 @@ class ListenerFlows(object):
|
||||
delete_listener_flow = linear_flow.Flow(
|
||||
constants.DELETE_LISTENER_FLOW + '-' + listener_id)
|
||||
# Should cascade delete all L7 policies
|
||||
delete_listener_flow.add(network_tasks.UpdateVIPForDelete(
|
||||
name='delete_update_vip_' + listener_id,
|
||||
requires=constants.LOADBALANCER_ID))
|
||||
delete_listener_flow.add(database_tasks.DeleteListenerInDB(
|
||||
name='delete_listener_in_db_' + listener_id,
|
||||
requires=constants.LISTENER,
|
||||
|
||||
@@ -292,12 +292,19 @@ class LoadBalancerFlows(object):
|
||||
:param listeners: A list of listener dicts
|
||||
:return: The flow for the deletion
|
||||
"""
|
||||
listeners_delete_flow = unordered_flow.Flow('listeners_delete_flow')
|
||||
delete_listeners_flow = linear_flow.Flow('delete_listeners_flow')
|
||||
delete_listeners_flow.add(network_tasks.UpdateVIPForDelete(
|
||||
name='delete_update_vip',
|
||||
requires=constants.LOADBALANCER_ID))
|
||||
|
||||
delete_internal_flow = unordered_flow.Flow('delete_listeners_flows')
|
||||
for listener in listeners:
|
||||
listeners_delete_flow.add(
|
||||
delete_internal_flow.add(
|
||||
self.listener_flows.get_delete_listener_internal_flow(
|
||||
listener, flavor_dict=flavor_dict))
|
||||
return listeners_delete_flow
|
||||
|
||||
delete_listeners_flow.add(delete_internal_flow)
|
||||
return delete_listeners_flow
|
||||
|
||||
def get_delete_load_balancer_flow(self, lb):
|
||||
"""Creates a flow to delete a load balancer.
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
---
|
||||
fixes:
|
||||
- |
|
||||
Fix a potential race condition during the cascade deletion of load
|
||||
balancers. When deleting a load balancer with multiple listeners, the
|
||||
security groups of the VIP port may have been updated many times
|
||||
concurrently, creating a race condition.
|
||||
Reference in New Issue
Block a user