From ff938bfdd5899bc16e508103c27a1d5d51182e37 Mon Sep 17 00:00:00 2001 From: Ganesh Nalawade Date: Wed, 29 Nov 2017 00:52:12 +0530 Subject: [PATCH] Reset persistent connection only if it is active (#33238) Fixes #33237 Add check to reset connection only is persistent socket file exist Fix review comments --- lib/ansible/plugins/strategy/__init__.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/ansible/plugins/strategy/__init__.py b/lib/ansible/plugins/strategy/__init__.py index af2e6ac5d6..52f44cc631 100644 --- a/lib/ansible/plugins/strategy/__init__.py +++ b/lib/ansible/plugins/strategy/__init__.py @@ -36,7 +36,7 @@ from ansible.inventory.host import Host from ansible.module_utils.six.moves import queue as Queue from ansible.module_utils.six import iteritems, itervalues, string_types from ansible.module_utils._text import to_text -from ansible.module_utils.connection import Connection +from ansible.module_utils.connection import Connection, ConnectionError from ansible.playbook.helpers import load_list_of_blocks from ansible.playbook.included_file import IncludedFile from ansible.playbook.task_include import TaskInclude @@ -140,8 +140,12 @@ class StrategyBase: def cleanup(self): # close active persistent connections for sock in itervalues(self._active_connections): - conn = Connection(sock) - conn.reset() + try: + conn = Connection(sock) + conn.reset() + except ConnectionError as e: + # most likely socket is already closed + display.debug("got an error while closing persistent connection: %s" % e) self._final_q.put(_sentinel) self._results_thread.join()