summaryrefslogtreecommitdiffstats
path: root/changelogs
diff options
context:
space:
mode:
authorJames Cammarata <jimi@sngx.net>2020-05-21 22:55:08 +0200
committerGitHub <noreply@github.com>2020-05-21 22:55:08 +0200
commita4072ad0e9c718b6946d599ba05c8a67e26a8195 (patch)
tree971f677a17e19c706898ed0cbdf0fd56c752bac8 /changelogs
parentfile - return 'state': 'absent' when a file does not exist (#66503) (diff)
downloadansible-a4072ad0e9c718b6946d599ba05c8a67e26a8195.tar.xz
ansible-a4072ad0e9c718b6946d599ba05c8a67e26a8195.zip
Split regular and handler results into their own queues (#69498)
When mixed with the free strategy (or any custom strategy that does not behave in a lock-step manner), the linear methodology of _wait_on_handler_results may cause race conditions with regular task result processing if the strategy uses _process_pending_results directly. This patch addresses that by splitting the queues used for results and adding a flag to _process_pending_results to determine which queue to check. Fixes #69457
Diffstat (limited to 'changelogs')
-rw-r--r--changelogs/fragments/69457-free-strategy-handler-race.yml4
1 files changed, 4 insertions, 0 deletions
diff --git a/changelogs/fragments/69457-free-strategy-handler-race.yml b/changelogs/fragments/69457-free-strategy-handler-race.yml
new file mode 100644
index 0000000000..f9adac0ade
--- /dev/null
+++ b/changelogs/fragments/69457-free-strategy-handler-race.yml
@@ -0,0 +1,4 @@
+bugfixes:
+- Prevent a race condition when running handlers using a combination of the free strategy and include_role.
+minor_changes:
+- The results queue and counter for results are now split for standard / handler results. This allows the governing strategy to be truly independent from the handler strategy, which basically follows the linear methodology.