Fix pool delete race on load balancer cascade delete
In what appears to be a race condition, load balancer cascade delete can fail while deleting numerous pools. The load balancer can still be deleted with one or more follow-up cascade delete API calls but this is suboptimal. Per local testing, the ValueError exception is harmless so we can just ignore it and continue the pool delete flow, with no orphan resources left behind resulting from the exception skip. Task: 41096 Story: 2008249 Change-Id: I9283d9804feb83a1d5a160da48da6146b19da88c
This commit is contained in:
parent
77dc23fc26
commit
332791ee2b
@ -17,10 +17,13 @@
|
||||
import datetime
|
||||
import re
|
||||
|
||||
from oslo_log import log as logging
|
||||
from sqlalchemy.orm import collections
|
||||
|
||||
from octavia.common import constants
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class BaseDataModel(object):
|
||||
def to_dict(self, calling_classes=None, recurse=False, **kwargs):
|
||||
@ -339,7 +342,11 @@ class Pool(BaseDataModel):
|
||||
break
|
||||
for pool in self.load_balancer.pools:
|
||||
if pool.id == self.id:
|
||||
self.load_balancer.pools.remove(pool)
|
||||
try:
|
||||
self.load_balancer.pools.remove(pool)
|
||||
except ValueError:
|
||||
LOG.debug("Pool %s has already been removed from load "
|
||||
"balancer pools list.", pool.id)
|
||||
break
|
||||
for l7policy in self.l7policies:
|
||||
if l7policy.redirect_pool_id == self.id:
|
||||
|
Loading…
Reference in New Issue
Block a user