Fix async logic when parsing fails (#17091)

We want to NOT consider the async task as failed if the result is
not parsed, which was the intent of:

  https://github.com/ansible/ansible/pull/16458

However, the logic doesn't actually do that because we default
the 'parsed' value to True. It should default to False so that
we continue waiting, as intended.
(cherry picked from commit bf8c871801)
This commit is contained in:
David Shrewsbury 2016-08-15 13:29:06 -04:00 committed by Brian Coca
parent 616a51ac00
commit d35377dac7

View file

@ -587,7 +587,7 @@ class TaskExecutor:
# have issues which result in a half-written/unparseable result
# file on disk, which manifests to the user as a timeout happening
# before it's time to timeout.
if int(async_result.get('finished', 0)) == 1 or ('failed' in async_result and async_result.get('parsed', True)) or 'skipped' in async_result:
if int(async_result.get('finished', 0)) == 1 or ('failed' in async_result and async_result.get('parsed', False)) or 'skipped' in async_result:
break
time_left -= self._task.poll