Skip to content

Commit def53f8

Browse files
committed
Fix Deployer Manager RPC connection leak
The deployer manager service created new rpc connections on every deployment check, basically causing an RPC connection leak which also caused task hanging. This fixes the connection leak from within the deployer service.
1 parent 2c61a90 commit def53f8

File tree

2 files changed

+3
-9
lines changed

2 files changed

+3
-9
lines changed

coriolis/constants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@
293293

294294
EXECUTION_TYPE_TO_ACTION_LOCK_NAME_FORMAT_MAP = {
295295
EXECUTION_TYPE_TRANSFER_EXECUTION: TRANSFER_LOCK_NAME_FORMAT,
296-
EXECUTION_TYPE_DEPLOYMENT: TRANSFER_LOCK_NAME_FORMAT,
296+
EXECUTION_TYPE_DEPLOYMENT: DEPLOYMENT_LOCK_NAME_FORMAT,
297297
EXECUTION_TYPE_TRANSFER_UPDATE: TRANSFER_LOCK_NAME_FORMAT,
298298
EXECUTION_TYPE_TRANSFER_DISKS_DELETE: TRANSFER_LOCK_NAME_FORMAT,
299299
EXECUTION_TYPE_MINION_POOL_MAINTENANCE: MINION_POOL_LOCK_NAME_FORMAT,

coriolis/deployer_manager/rpc/server.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def _wait_for_pending_deployment_status_change(self, deployment_id):
5454
LOG.info(
5555
f"Deployment '{deployment_id}' is still '{deployment_status}'")
5656
i += 1
57-
time.sleep(5)
57+
time.sleep(1)
5858

5959
raise exception.InvalidDeploymentState(
6060
f"Timed out waiting for deployment '{deployment_id}' to be out of "
@@ -120,20 +120,14 @@ def _check_deployer_status(self, deployment_id):
120120
self._admin_ctx, deployment_id, str(ex))
121121

122122
def _loop(self):
123-
greenthreads = []
124123
while True:
125124
try:
126125
deployments = self._rpc_conductor_client.get_deployments(
127126
self._admin_ctx, include_tasks=False,
128127
include_task_info=False)
129128
for d in deployments:
130129
if d['last_execution_status'] == PENDING_STATUS:
131-
greenthreads.append(
132-
eventlet.spawn(
133-
self._check_deployer_status, d['id']))
134-
135-
for gt in greenthreads:
136-
gt.wait()
130+
self._check_deployer_status(d['id'])
137131
except Exception:
138132
LOG.warning(
139133
f"Deployer manager failed to list pending deployments. "

0 commit comments

Comments
 (0)