diff --git a/lib/ansible/executor/process/worker.py b/lib/ansible/executor/process/worker.py index c699015670c..1da7c869fe6 100644 --- a/lib/ansible/executor/process/worker.py +++ b/lib/ansible/executor/process/worker.py @@ -105,10 +105,10 @@ class WorkerProcess(multiprocessing_context.Process): # type: ignore[name-defin with display._lock, cm: super(WorkerProcess, self).start() - def terminate(self): + def close(self): if self._master: os.close(self._master) - super().terminate() + super().close() def _hard_exit(self, e): ''' diff --git a/lib/ansible/plugins/strategy/__init__.py b/lib/ansible/plugins/strategy/__init__.py index e8862683225..9d62efa14a4 100644 --- a/lib/ansible/plugins/strategy/__init__.py +++ b/lib/ansible/plugins/strategy/__init__.py @@ -399,6 +399,8 @@ class StrategyBase: worker_prc = self._workers[self._cur_worker] if worker_prc is None or not worker_prc.is_alive(): + if worker_prc: + worker_prc.close() self._queued_task_cache[(host.name, task._uuid)] = { 'host': host, 'task': task,