diff --git a/changelogs/fragments/include-no-swallow-error.yaml b/changelogs/fragments/include-no-swallow-error.yaml new file mode 100644 index 00000000000..37f1416aa3a --- /dev/null +++ b/changelogs/fragments/include-no-swallow-error.yaml @@ -0,0 +1,2 @@ +bugfixes: +- include_role - Don't swallow errors when processing included files/roles (https://github.com/ansible/ansible/issues/54786) diff --git a/lib/ansible/plugins/strategy/__init__.py b/lib/ansible/plugins/strategy/__init__.py index 84d43d9ab9e..da61820e5bc 100644 --- a/lib/ansible/plugins/strategy/__init__.py +++ b/lib/ansible/plugins/strategy/__init__.py @@ -893,15 +893,12 @@ class StrategyBase: # collect the results from the handler run host_results = self._wait_on_handler_results(iterator, handler, notified_hosts) - try: - included_files = IncludedFile.process_include_results( - host_results, - iterator=iterator, - loader=self._loader, - variable_manager=self._variable_manager - ) - except AnsibleError: - return False + included_files = IncludedFile.process_include_results( + host_results, + iterator=iterator, + loader=self._loader, + variable_manager=self._variable_manager + ) result = True if len(included_files) > 0: diff --git a/lib/ansible/plugins/strategy/free.py b/lib/ansible/plugins/strategy/free.py index b712d08d540..4e779eb9a1c 100644 --- a/lib/ansible/plugins/strategy/free.py +++ b/lib/ansible/plugins/strategy/free.py @@ -202,15 +202,12 @@ class StrategyModule(StrategyBase): self.update_active_connections(results) - try: - included_files = IncludedFile.process_include_results( - host_results, - iterator=iterator, - loader=self._loader, - variable_manager=self._variable_manager - ) - except AnsibleError as e: - return self._tqm.RUN_ERROR + included_files = IncludedFile.process_include_results( + host_results, + iterator=iterator, + loader=self._loader, + variable_manager=self._variable_manager + ) if len(included_files) > 0: all_blocks = dict((host, []) for host in hosts_left) diff --git a/lib/ansible/plugins/strategy/linear.py b/lib/ansible/plugins/strategy/linear.py index 93d767e3658..0a1c11c268c 100644 --- a/lib/ansible/plugins/strategy/linear.py +++ b/lib/ansible/plugins/strategy/linear.py @@ -324,16 +324,12 @@ class StrategyModule(StrategyBase): self.update_active_connections(results) - try: - included_files = IncludedFile.process_include_results( - host_results, - iterator=iterator, - loader=self._loader, - variable_manager=self._variable_manager - ) - except AnsibleError as e: - # this is a fatal error, so we abort here regardless of block state - return self._tqm.RUN_ERROR + included_files = IncludedFile.process_include_results( + host_results, + iterator=iterator, + loader=self._loader, + variable_manager=self._variable_manager + ) include_failure = False if len(included_files) > 0: