# 'shell' module gets 'stuck' in Docker container with this task configuration.

**URL:** <https://forum.ansible.com/t/shell-module-gets-stuck-in-docker-container-with-this-task-configuration/21228>\
**Category:** Ansible Project\
**Tags:** ubuntu\
**Created:** [April 21, 2016, 10:48am UTC](https://forum.ansible.com/t/shell-module-gets-stuck-in-docker-container-with-this-task-configuration/21228 "2016-04-21T10:48:33Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![James\_Stephenson](https://avatars.discourse-cdn.com/v4/letter/j/ecae2f/32.png) [@James\_Stephenson](https://forum.ansible.com/u/James_Stephenson)\
**Post date:** [April 21, 2016, 10:48am UTC](https://forum.ansible.com/t/shell-module-gets-stuck-in-docker-container-with-this-task-configuration/21228/1 "2016-04-21T10:48:33Z")

</div>

Hi,

This has been driving me mad :).

- Ansible 2.0.2
- Ubuntu 14.04

The following task ‘hangs’ whilst executing in a Docker container:

`  
shell: \>  
echo $(cat /dev/urandom | tr -dc ‘a-zA-Z0-9’ | fold -w 16 | head -n 1)

> {{ arbitrary\_file\_path }}  
> args:  
> executable: /bin/bash  
> `

If I get a shell in the same container (whilst it’s hung running the task), and either run the command directly or run:

`  
ansible 127.0.0.1 -c local -m shell -a “echo $(cat /dev/urandom | tr -dc ‘a-zA-Z0-9’ | fold -w 16 | head -n 1) \> foo\_file executable=/bin/bash”

`

It works as expected!

If I take a look at the processes whilst it’s hung, I get (truncated on the right):

`

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND  
root 1 0.0 0.0 4448 800 ? Ss 10:18 0:00 /bin/sh -c /srv/provisioning/entrypoint.sh  
root 7 0.0 0.0 17968 2868 ? S 10:18 0:00 /bin/bash /srv/provisioning/entrypoint.sh  
root 8 8.9 0.1 82740 26568 ? R 10:18 0:14 python /usr/bin/ansible-playbook /srv/provisioning/playbook.yml -c local  
root 11 8.8 0.1 155768 23084 ? Sl 10:18 0:13 python /usr/bin/ansible-playbook /srv/provisioning/playbook.yml -c local  
root 735 0.0 0.1 97004 25064 ? S 10:20 0:00 python /usr/bin/ansible-playbook /srv/provisioning/playbook.yml -c local  
root 742 0.0 0.0 4448 804 ? S 10:20 0:00 /bin/sh -c /bin/sh -c 'LANG=en\_US.UTF-8 LC\_ALL=en\_US.UTF-8 LC\_MESSAGES=en\_US.UTF-  
root 743 0.0 0.0 4448 688 ? S 10:20 0:00 /bin/sh -c LANG=en\_US.UTF-8 LC\_ALL=en\_US.UTF-8 LC\_MESSAGES=en\_US.UTF-8 /usr/bin/p  
root 744 0.0 0.0 34820 11812 ? S 10:20 0:00 /usr/bin/python /home/tru/.ansible/tmp/ansible-tmp-1461234012.13-9745977883185/co  
root 745 0.0 0.0 17964 2900 ? S 10:20 0:00 /bin/bash -c echo $(cat /dev/urandom | tr -dc ‘a-zA-Z0-9’ | fold -w 16 | head -n  
root 746 0.0 0.0 17972 2184 ? S 10:20 0:00 /bin/bash -c echo $(cat /dev/urandom | tr -dc ‘a-zA-Z0-9’ | fold -w 16 | head -n  
root 747 90.3 0.0 4368 668 ? R 10:20 1:07 cat /dev/urandom  
root 748 5.8 0.0 4376 772 ? S 10:20 0:04 tr -dc a-zA-Z0-9  
root 749 2.2 0.0 4360 708 ? S 10:20 0:01 fold -w 16

`

Which makes it look like the final ‘head’ in the piped chain isn’t terminating the cat like it typically would. Why that is, I don’t know.

Perhaps this makes sense to someone?

Thanks in advance,

JS
