diff --git a/lib/ansible/plugins/connection/network_cli.py b/lib/ansible/plugins/connection/network_cli.py index 1df244f0f3..879374df68 100644 --- a/lib/ansible/plugins/connection/network_cli.py +++ b/lib/ansible/plugins/connection/network_cli.py @@ -24,6 +24,7 @@ import json import signal import datetime +from ansible import constants as C from ansible.errors import AnsibleConnectionFailure from ansible.module_utils.six.moves import StringIO from ansible.plugins import terminal_loader @@ -203,6 +204,7 @@ class Connection(_Connection): def alarm_handler(self, signum, frame): """Alarm handler raised in case of command timeout """ + display.debug('alarm_handler fired!') self.close_shell() def exec_command(self, cmd): @@ -242,7 +244,12 @@ class Connection(_Connection): return (1, '', str(exc)) try: + if not signal.getsignal(signal.SIGALRM): + display.debug('setting alarm handler in network_cli') + signal.signal(signal.SIGALRM, self.alarm_handler) + signal.alarm(C.DEFAULT_TIMEOUT) out = self.send(obj) + signal.alarm(0) return (0, out, '') except (AnsibleConnectionFailure, ValueError) as exc: return (1, '', str(exc))