diff --git a/octavia/controller/worker/tasks/database_tasks.py b/octavia/controller/worker/tasks/database_tasks.py index 61305fd884..4891a43ba9 100644 --- a/octavia/controller/worker/tasks/database_tasks.py +++ b/octavia/controller/worker/tasks/database_tasks.py @@ -498,9 +498,16 @@ class MapLoadbalancerToAmphora(BaseDatabaseTask): "pool allocation.") return None - amp = self.amphora_repo.allocate_and_associate( - db_apis.get_session(), - loadbalancer_id) + try: + amp = self.amphora_repo.allocate_and_associate( + db_apis.get_session(), + loadbalancer_id) + except Exception as e: + LOG.error("Failed to get a spare amphora for " + "loadbalancer %s due to: %s", + loadbalancer_id, e) + return None + if amp is None: LOG.debug("No Amphora available for load balancer with id %s", loadbalancer_id)