Previously we were first checking the fail/run state of the child
state for tasks/rescue/always portions of the block. Instead we are now
always recursively iterating over the child state and then evaluating
whether the child state is failed or complete before changing the failed/
run state within the current block.
Fixes#14324
@ -92,7 +92,7 @@ class StrategyModule(StrategyBase):
num_rescue+=1
elifs.run_state==PlayIterator.ITERATING_ALWAYS:
num_always+=1
display.debug("done counting tasks in each state of execution")
display.debug("done counting tasks in each state of execution:\n\tnum_setups: %s\n\tnum_tasks: %s\n\tnum_rescue: %s\n\tnum_always: %s"%(num_setups,num_tasks,num_rescue,num_always))