# Ad hoc commands are not returning to the prompt?

**URL:** <https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217>\
**Category:** Ansible Developer\
**Tags:** ubuntu\
**Created:** [May 12, 2014, 9:25pm UTC](https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217 "2014-05-12T21:25:12Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Robin\_Speekenbrink](https://avatars.discourse-cdn.com/v4/letter/r/e19adc/32.png) [@Robin\_Speekenbrink](https://forum.ansible.com/u/Robin_Speekenbrink)\
**Post date:** [May 12, 2014, 9:25pm UTC](https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217/1 "2014-05-12T21:25:12Z")

</div>

Hi everyone,

Just started out using Ansible for managing our various hosts / docker containers etc… The only problem i have whilst testing this: all my ad-hoc commands never finish 🙂

just a simple ‘ansible office -vvvvv -a “/usr/bin/uptime”’  
 ESTABLISH CONNECTION FOR USER: root on PORT 22 TO host1  
 ESTABLISH CONNECTION FOR USER: root on PORT 22 TO host2  
 ESTABLISH CONNECTION FOR USER: root on PORT 22 TO host3  
 ESTABLISH CONNECTION FOR USER: root on PORT 22 TO host4  
 EXEC /bin/sh -c ‘mkdir -p $HOME/.ansible/tmp/ansible-1399929485.48-193948231594553 && echo $HOME/.ansible/tmp/ansible-1399929485.48-193948231594553’  
 EXEC /bin/sh -c ‘mkdir -p $HOME/.ansible/tmp/ansible-1399929485.52-91011211544401 && echo $HOME/.ansible/tmp/ansible-1399929485.52-91011211544401’  
 REMOTE\_MODULE command /usr/bin/uptime  
 REMOTE\_MODULE command /usr/bin/uptime  
 PUT /tmp/tmpqfWmwp TO /root/.ansible/tmp/ansible-1399929485.48-193948231594553/command  
 EXEC /bin/sh -c ‘mkdir -p $HOME/.ansible/tmp/ansible-1399929485.49-54151257537199 && echo $HOME/.ansible/tmp/ansible-1399929485.49-54151257537199’  
 PUT /tmp/tmplYjZje TO /root/.ansible/tmp/ansible-1399929485.52-91011211544401/command  
 REMOTE\_MODULE command /usr/bin/uptime  
 PUT /tmp/tmpCAU0Pt TO /root/.ansible/tmp/ansible-1399929485.49-54151257537199/command  
 EXEC /bin/sh -c ‘/usr/bin/python /root/.ansible/tmp/ansible-1399929485.52-91011211544401/command; rm -rf /root/.ansible/tmp/ansible-1399929485.52-91011211544401/ \>/dev/null 2\>&1’  
 EXEC /bin/sh -c ‘/usr/bin/python /root/.ansible/tmp/ansible-1399929485.49-54151257537199/command; rm -rf /root/.ansible/tmp/ansible-1399929485.49-54151257537199/ \>/dev/null 2\>&1’  
 EXEC /bin/sh -c ‘/usr/bin/python /root/.ansible/tmp/ansible-1399929485.48-193948231594553/command; rm -rf /root/.ansible/tmp/ansible-1399929485.48-193948231594553/ \>/dev/null 2\>&1’  
 EXEC /bin/sh -c ‘mkdir -p $HOME/.ansible/tmp/ansible-1399929485.52-98282571951561 && echo $HOME/.ansible/tmp/ansible-1399929485.52-98282571951561’  
 REMOTE\_MODULE command /usr/bin/uptime  
 PUT /tmp/tmpqfWmwp TO /root/.ansible/tmp/ansible-1399929485.52-98282571951561/command  
 EXEC /bin/sh -c ‘/usr/bin/python /root/.ansible/tmp/ansible-1399929485.52-98282571951561/command; rm -rf /root/.ansible/tmp/ansible-1399929485.52-98282571951561/ \>/dev/null 2\>&1’

I’m running ansible 1.4.5 (Ubuntu 10.04 starting point, seen above as host4)  
Even running the same command on one of the hosts (doesnt matter which one) just stalls … (even after checking on the destination and verifying that the command was finished… All that remains is the “sshd: root@notty” trace…

Am i doing it wrong?

Thanks!

---

<div class="post-metadata">

**Author:** ![Robin\_Speekenbrink](https://avatars.discourse-cdn.com/v4/letter/r/e19adc/32.png) [@Robin\_Speekenbrink](https://forum.ansible.com/u/Robin_Speekenbrink)\
**Post date:** [May 12, 2014, 9:27pm UTC](https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217/2 "2014-05-12T21:27:16Z")

</div>

To complete the debug info:

After a CTRL-C on the console i get the following output:

Traceback (most recent call last):  
File “/usr/lib/pymodules/python2.6/ansible/runner/connection\_plugins/paramiko\_ssh.py”, line 321, in close  
self.ssh.\_host\_keys.update(self.ssh.\_system\_host\_keys)  
File “/usr/lib/python2.6/UserDict.py”, line 155, in update  
for k, v in other.iteritems():  
File “/usr/lib/python2.6/UserDict.py”, line 110, in iteritems  
yield (k, self[k])  
File “/usr/lib/pymodules/python2.6/paramiko/hostkeys.py”, line 258, in **getitem**  
ret = self.lookup(key)  
File “/usr/lib/pymodules/python2.6/paramiko/hostkeys.py”, line 224, in lookup  
if (h.startswith(‘|1|’) and (self.hash\_host(hostname, h) == h)) or (h == hostname):  
File “/usr/lib/pymodules/python2.6/paramiko/hostkeys.py”, line 312, in hash\_host  
hmac = HMAC.HMAC(salt, hostname, SHA).digest()  
File “/usr/lib/python2.6/dist-packages/Crypto/Hash/HMAC.py”, line 56, in **init**  
self.inner.update(\_strxor(key, ipad))  
File “/usr/lib/python2.6/dist-packages/Crypto/Hash/HMAC.py”, line 16, in \_strxor  
return “”.join(map(lambda x, y: chr(ord(x) ^ ord(y)), s1, s2))  
File “/usr/lib/python2.6/dist-packages/Crypto/Hash/HMAC.py”, line 16, in   
return “”.join(map(lambda x, y: chr(ord(x) ^ ord(y)), s1, s2))  
KeyboardInterrupt  
host3 | success | rc=0 \>\>  
host3

(where the command starting this was ‘ansible host3 -vvvv -m shell -a “hostname”’

Is the python 2.6 the problem here?

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan1](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Michael\_DeHaan1](https://forum.ansible.com/u/Michael_DeHaan1)\
**Post date:** [May 13, 2014, 9:48pm UTC](https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217/3 "2014-05-13T21:48:53Z")

</div>

If you have the playbook configured to sudo and you didn’t pass --ask-sudo-pass, that may be the problem.

We have a ticket open to irmprove the detection of a sudo prompt.

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan1](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Michael\_DeHaan1](https://forum.ansible.com/u/Michael_DeHaan1)\
**Post date:** [May 13, 2014, 9:49pm UTC](https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217/4 "2014-05-13T21:49:22Z")

</div>

FYI, this question in the future is more apt for ansible-project, as it’s about usage, rather than developing ansible itself.

Not a problem but wanted to point that out.

Thanks!

---

<div class="post-metadata">

**Author:** ![Robin\_Speekenbrink](https://avatars.discourse-cdn.com/v4/letter/r/e19adc/32.png) [@Robin\_Speekenbrink](https://forum.ansible.com/u/Robin_Speekenbrink)\
**Post date:** [May 14, 2014, 6:35am UTC](https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217/5 "2014-05-14T06:35:02Z")

</div>

Michael,

Thanks for the reponse. I realized after posting the opening post that it was the developers list… Sorry, my bad, my next post will be placed in the correct list 🙂

I’ve also haven’t been able to reproduce on Ubuntu 14.04 (ansible 1.5.4) so it seems it might just be an old version not working a bit wonky…  
Thanks again for the prompt reply. Seems upgrading to a more recent (non-apt due to 10.04 host) might solve the issue?

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan1](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Michael\_DeHaan1](https://forum.ansible.com/u/Michael_DeHaan1)\
**Post date:** [May 14, 2014, 12:39pm UTC](https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217/6 "2014-05-14T12:39:40Z")

</div>

I’m not aware of any recent hanging scenarios in any version, FWIW – except in cases where a command might have gone interactive (depends on the command).

---

<div class="post-metadata">

**Author:** ![Robin\_Speekenbrink](https://avatars.discourse-cdn.com/v4/letter/r/e19adc/32.png) [@Robin\_Speekenbrink](https://forum.ansible.com/u/Robin_Speekenbrink)\
**Post date:** [May 14, 2014, 12:52pm UTC](https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217/7 "2014-05-14T12:52:07Z")

</div>

Well as said, the command example requires no sudo, isnt particularly  
heavy, just returns the hostname 🙂 (also tried "-m ping" to no avail)

Thus all the following examples exhibit the same behaviour:  
ansible office -vvvvv -a "uptime"  
ansible office -vvvvv -a "hostname"  
ansible office -vvvvv -a "w"  
ansible office -vvvvv -m ping

control host: Ubuntu 10.04  
ansible --version: ansible 1.4.5  
python --version: Python 2.6.5  
Met vriendelijke groet,

Robin Speekenbrink

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan1](https://avatars.discourse-cdn.com/v4/letter/m/5e9695/32.png) [@Michael\_DeHaan1](https://forum.ansible.com/u/Michael_DeHaan1)\
**Post date:** [May 14, 2014, 2:10pm UTC](https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217/8 "2014-05-14T14:10:13Z")

</div>

Please paste the full command line you are running (including the shell prompt) and the full output you get (up to and including the next shell prompt).

Thanks!

---

<div class="post-metadata">

**Author:** ![Robin\_Speekenbrink](https://avatars.discourse-cdn.com/v4/letter/r/e19adc/32.png) [@Robin\_Speekenbrink](https://forum.ansible.com/u/Robin_Speekenbrink)\
**Post date:** [May 14, 2014, 2:26pm UTC](https://forum.ansible.com/t/ad-hoc-commands-are-not-returning-to-the-prompt/15217/9 "2014-05-14T14:26:42Z")

</div>

Here you go, doesnt differ much from my opening post:  
root@host4:~# ansible office -vvvv -a "uptime"  
\<host1\> ESTABLISH CONNECTION FOR USER: root on PORT 22 TO host1  
\<host2\> ESTABLISH CONNECTION FOR USER: root on PORT 22 TO host2  
\<host4\> ESTABLISH CONNECTION FOR USER: root on PORT 22 TO host4  
\<host3\> ESTABLISH CONNECTION FOR USER: root on PORT 22 TO host3  
\<host1\> EXEC /bin/sh -c 'mkdir -p  
$HOME/.ansible/tmp/ansible-1400077153.93-230744874133396 && echo  
$HOME/.ansible/tmp/ansible-1400077153.93-230744874133396'  
\<host1\> REMOTE\_MODULE command uptime  
\<host1\> PUT /tmp/tmpHXoNFe TO  
/root/.ansible/tmp/ansible-1400077153.93-230744874133396/command  
\<host3\> EXEC /bin/sh -c 'mkdir -p  
$HOME/.ansible/tmp/ansible-1400077153.91-47758668405338 && echo  
$HOME/.ansible/tmp/ansible-1400077153.91-47758668405338'  
\<host2\> EXEC /bin/sh -c 'mkdir -p  
$HOME/.ansible/tmp/ansible-1400077154.0-155050846726559 && echo  
$HOME/.ansible/tmp/ansible-1400077154.0-155050846726559'  
\<host1\> EXEC /bin/sh -c '/usr/bin/python  
/root/.ansible/tmp/ansible-1400077153.93-230744874133396/command; rm  
-rf /root/.ansible/tmp/ansible-1400077153.93-230744874133396/

> /dev/null 2\>&1'

\<host3\> REMOTE\_MODULE command uptime  
\<host3\> PUT /tmp/tmpHXoNFe TO  
/root/.ansible/tmp/ansible-1400077153.91-47758668405338/command  
\<host2\> REMOTE\_MODULE command uptime  
\<host2\> PUT /tmp/tmpRSTQ3\_ TO  
/root/.ansible/tmp/ansible-1400077154.0-155050846726559/command  
\<host2\> EXEC /bin/sh -c '/usr/bin/python  
/root/.ansible/tmp/ansible-1400077154.0-155050846726559/command; rm  
-rf /root/.ansible/tmp/ansible-1400077154.0-155050846726559/

> /dev/null 2\>&1'

\<host3\> EXEC /bin/sh -c '/usr/bin/python  
/root/.ansible/tmp/ansible-1400077153.91-47758668405338/command; rm  
-rf /root/.ansible/tmp/ansible-1400077153.91-47758668405338/

> /dev/null 2\>&1'

\<host4\> EXEC /bin/sh -c 'mkdir -p  
$HOME/.ansible/tmp/ansible-1400077154.08-121377164394763 && echo  
$HOME/.ansible/tmp/ansible-1400077154.08-121377164394763'  
\<host4\> REMOTE\_MODULE command uptime  
\<host4\> PUT /tmp/tmpHXoNFe TO  
/root/.ansible/tmp/ansible-1400077154.08-121377164394763/command  
\<host4\> EXEC /bin/sh -c '/usr/bin/python  
/root/.ansible/tmp/ansible-1400077154.08-121377164394763/command; rm  
-rf /root/.ansible/tmp/ansible-1400077154.08-121377164394763/

> /dev/null 2\>&1'

^C32  
ERROR: interrupted

After a few minutes i CTRL-C (thus ^C32 and the error) otherwise the  
prompt would never be returned

Running the uptime command on a single host (out of the office group)  
through strace:  
strace ansible host3 -vvvv -a "uptime"  
[... alot ...]  
but ends in  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAIT\_PRIVATE, 0, NULL) = -1 EAGAIN (Resource  
temporarily unavailable)  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAIT\_PRIVATE, 0, NULL) = -1 EAGAIN (Resource  
temporarily unavailable)  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
futex(0xdd3540, FUTEX\_WAKE\_PRIVATE, 1) = 1  
repeating over and over again...

Hope this helps!  
Met vriendelijke groet,

Robin Speekenbrink
