diff options
author | James Cammarata <jimi@sngx.net> | 2020-05-21 22:55:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-21 22:55:08 +0200 |
commit | a4072ad0e9c718b6946d599ba05c8a67e26a8195 (patch) | |
tree | 971f677a17e19c706898ed0cbdf0fd56c752bac8 /changelogs | |
parent | file - return 'state': 'absent' when a file does not exist (#66503) (diff) | |
download | ansible-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.yml | 4 |
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. |