Stuck with ERROR A worker was found in a dead state? We can help you.
Generally, we come across this error when there is a disruption in deploying an Ansible module to a target machine.
As part of our Server Management Services, we assist our customers with several Ansible queries.
Today, let us see how we can fix this error.
ERROR A worker was found in a dead state
Ansible works by connecting to the target machine from the ansible controller over SSH.
It will then push small programs called “Ansible Modules” to the target machine and executes them.
Moving ahead, let us see how our Support Techs identify the cause of the problem.
Initially, we need to enable a verbose mode of ansible.
ansible-playbook -vvv playbook.yml
The -vvv flag to the ansible command will allow us to get a detailed log of what is happening on the terminal itself.
Possible causes and fix
- The Target machine is Out of Memory
When the target machine is a container or VM with less memory, this error can occur.
In order to fix this, we just need to increase the memory of the target container.
- The number of workers is over the limit
The default number of ansible forks is 5. If the ansible controller has any limitation per process, it will cause problems while executing 5 parallel processes at a time.
If we change the strategy of execution of ansible, we resolve this problem.
In the ansible command, we use the flag -f to determine the number of forks used :
ansible-playbook -vvv playbook.yml -f1
This command will reduce the forks number to 1.
- The Ansible module timed out
If we run a process that takes a lot of time, we add a pause or wait_for ansible modules in the playbook.
Especially, if the playbook has modules like restarting the target machine or specific service.
[Still, stuck with the error? Let us take a look into it]
In short, we saw how our Support Techs fix the Ansible error for our customers.