From 3feb6c9e0fba8a521c7c0948b6eb89822cdef2cd Mon Sep 17 00:00:00 2001 From: Nathaniel Case Date: Thu, 18 Oct 2018 12:09:00 -0400 Subject: [PATCH] Try to be more verbose with JSON decode errors (#47066) * Try to be more verbose with JSON decode errors --- lib/ansible/module_utils/connection.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/ansible/module_utils/connection.py b/lib/ansible/module_utils/connection.py index 24f27460d0f..1bf6f708f7c 100644 --- a/lib/ansible/module_utils/connection.py +++ b/lib/ansible/module_utils/connection.py @@ -164,12 +164,19 @@ class Connection(object): try: out = self.send(data) - response = json.loads(out) - except socket.error as e: raise ConnectionError('unable to connect to socket. See the socket_path issue catergory in Network Debug and Troubleshooting Guide', err=to_text(e, errors='surrogate_then_replace'), exception=traceback.format_exc()) + try: + response = json.loads(out) + except ValueError: + params = list(args) + ['{0}={1}'.format(k, v) for k, v in iteritems(kwargs)] + params = ', '.join(params) + raise ConnectionError( + "Unable to decode JSON from response to {0}({1}). Received '{2}'.".format(name, params, out) + ) + if response['id'] != reqid: raise ConnectionError('invalid json-rpc id received')