# apt: upgrade=dist play hangs

**URL:** <https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252>\
**Category:** Ansible Project\
**Created:** [January 13, 2015, 7:13pm UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252 "2015-01-13T19:13:36Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bob\_Tanner](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Bob\_Tanner](https://forum.ansible.com/u/Bob_Tanner)\
**Post date:** [January 13, 2015, 7:13pm UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/1 "2015-01-13T19:13:36Z")

</div>

git pulled the latest code

$ git rev-parse HEAD  
f1fdddb640e1dfcd8fdc930031db267947d8cb70

and now the following play hangs

- name: package upgrade (apt)  
apt: upgrade=dist  
sudo: yes

All computers have minimal load. Logs on the remote computer show:

ansible-apt: Invoked with dpkg\_options=force-confdef,force-confold upgrade=None force=False package=None purge=False state=present update\_cache=True default\_release=None cache\_valid\_time=3600 deb=None install\_recommends=True

The computer running ansible shows:

\<[www.X.com](http://www.X.com)\> ESTABLISH CONNECTION FOR USER: ansible-user on PORT 22 TO [www.X.com](http://www.X.com)  
\<[www.X.com](http://www.X.com)\> REMOTE\_MODULE apt upgrade=dist  
\<[www.X.com](http://www.X.com)\> EXEC /bin/sh -c ‘mkdir -p $HOME/.ansible/tmp/ansible-tmp-1421171817.66-121308835316644 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1421171817.66-121308835316644 && echo $HOME/.ansible/tmp/ansible-tmp-1421171817.66-121308835316644’  
\<[www.X.com](http://www.X.com)\> PUT /var/folders/d\_/bm7rvz154jb\_2djkqybb503h0000gn/T/tmpgwRxMi TO /home/ansible-user/.ansible/tmp/ansible-tmp-1421171817.66-121308835316644/apt  
\<[www.Xl.com](http://www.Xl.com)\> EXEC /bin/sh -c ‘sudo -k && sudo -H -S -p “[sudo via ansible, key=XXXXXX] password: " -u root /bin/sh -c '”’“‘echo SUDO-SUCCESS-XXXXXXX; LANG=en\_US.UTF-8 LC\_CTYPE=en\_US.UTF-8 /usr/bin/python /home/ansible-user/.ansible/tmp/ansible-tmp-1421171817.66-121308835316644/apt; rm -rf /home/rte/.ansible/tmp/ansible-tmp-1421171817.66-121308835316644/ \>/dev/null 2\>&1’”‘"’’

What is odd is the remote computer does not show python running or ssh connections so I think the command had completed on the remote host and it’s ansible computer that is hung or slow waiting to process things.

Here is what I see on the ansible host for a process list

501 82141 31032 0 12:05PM ttys004 0:00.80 python ansible-playbook --ask-pass --ask-sudo -i customers/XXXX.com linux-servers.yml --tags apt  
501 82151 82141 0 12:06PM ttys004 0:00.04 python ansible-playbook --ask-pass --ask-sudo -i customers/XXXX.com linux-servers.yml --tags apt  
501 82154 82141 0 12:06PM ttys004 0:09.39 python ansible-playbook --ask-pass --ask-sudo -i customers/XXXX.com linux-servers.yml --tags apt  
501 82155 82141 0 12:06PM ttys004 0:00.00 (python)  
501 82156 82141 0 12:06PM ttys004 0:00.00 (python)

PID 82154 continues to tick CPU time so I do not think it’s hung.

I’ve rebooted the [www.X.com](http://www.X.com) host and still the ansible control computer hangs on this play.

I’m looking for tips on how to debug this problem.

Thanks.

---

<div class="post-metadata">

**Author:** ![Bob\_Tanner](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Bob\_Tanner](https://forum.ansible.com/u/Bob_Tanner)\
**Post date:** [January 13, 2015, 7:19pm UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/2 "2015-01-13T19:19:13Z")

</div>

> Here is what I see on the ansible host for a process list
> 
> 501 82141 31032 0 12:05PM ttys004 0:00.80 python ansible-playbook --ask-pass --ask-sudo -i customers/XXXX.com linux-servers.yml --tags apt  
> 501 82151 82141 0 12:06PM ttys004 0:00.04 python ansible-playbook --ask-pass --ask-sudo -i customers/XXXX.com linux-servers.yml --tags apt  
> 501 82154 82141 0 12:06PM ttys004 0:09.39 python ansible-playbook --ask-pass --ask-sudo -i customers/XXXX.com linux-servers.yml --tags apt  
> 501 82155 82141 0 12:06PM ttys004 0:00.00 (python)  
> 501 82156 82141 0 12:06PM ttys004 0:00.00 (python)
> 
> PID 82154 continues to tick CPU time so I do not think it’s hung.

If I kill 82154 the ansible control computer moves past the “hung” [www.X.com](http://www.X.com) host and continues with the rest of the plays in the playbook.

---

<div class="post-metadata">

**Author:** ![Bob\_Tanner](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Bob\_Tanner](https://forum.ansible.com/u/Bob_Tanner)\
**Post date:** [January 14, 2015, 1:22am UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/3 "2015-01-14T01:22:02Z")

</div>

Have this play hang now too.

- name: package update (apt)  
apt: update\_cache=yes cache\_valid\_time=3600  
sudo: yes  
always\_run: yes

Verbose run shows this on multiple hosts:

\<[host.domain.com](http://host.domain.com)\> ESTABLISH CONNECTION FOR USER: ansible-user on PORT 22 TO [host.domain.com](http://host.domain.com)

\<[host.domain.com](http://host.domain.com)\> REMOTE\_MODULE apt update\_cache=yes cache\_valid\_time=3600

\<[host.domain.com](http://host.domain.com)\> EXEC /bin/sh -c ‘mkdir -p $HOME/.ansible/tmp/ansible-tmp-1421180023.91-7480599726320 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1421180023.91-7480599726320 && echo $HOME/.ansible/tmp/ansible-tmp-1421180023.91-7480599726320’

\<[host.domain.com](http://host.domain.com)\> PUT /var/folders/d\_/bm7rvz154jb\_2djkqybb503h0000gn/T/tmpGH6ekd TO /home/ansible-user/.ansible/tmp/ansible-tmp-1421180023.91-7480599726320/apt

\<[host.domain.com](http://host.domain.com)\> EXEC /bin/sh -c ‘sudo -k && sudo -H -S -p “[sudo via ansible, key=X] password: " -u root /bin/sh -c '”’“‘echo SUDO-SUCCESS-X; LANG=en\_US.UTF-8 LC\_CTYPE=en\_US.UTF-8 /usr/bin/python /home/ansible-user/.ansible/tmp/ansible-tmp-1421180023.91-7480599726320/apt; rm -rf /home/ansible-user/.ansible/tmp/ansible-tmp-1421180023.91-7480599726320/ \>/dev/null 2\>&1’”‘"’’

Then is just hangs.

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [January 14, 2015, 12:36pm UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/4 "2015-01-14T12:36:13Z")

</div>

what happens when you manually run 'apt-get update' on the same machine?

---

<div class="post-metadata">

**Author:** ![Bob\_Tanner](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Bob\_Tanner](https://forum.ansible.com/u/Bob_Tanner)\
**Post date:** [January 14, 2015, 5:41pm UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/5 "2015-01-14T17:41:17Z")

</div>

I should have posted that info in the first place. Thanks for asking. Things work fine when apt-get update from the command line.

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [January 14, 2015, 6:03pm UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/6 "2015-01-14T18:03:21Z")

</div>

ok, so what happens when you run "apt-get dist-upgrade" , both these  
commands are what ansible is running for you with those arguments to  
the module.

---

<div class="post-metadata">

**Author:** ![Bob\_Tanner](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Bob\_Tanner](https://forum.ansible.com/u/Bob_Tanner)\
**Post date:** [January 14, 2015, 11:07pm UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/7 "2015-01-14T23:07:55Z")

</div>

Works as expected.

Oddly if I --limit “[www.X.com](http://www.X.com)” it also works.

When I’m -not- using --limit I do see this in the logs of the host that hangs then the “REMOTE\_MODULE apt update\_cache=yes cache\_valid\_time=3600” is run:

Jan 14 17:02:05 www sudo: pam\_unix(sudo:auth): authentication failure; logname=ansible-user uid=1001 euid=0 tty=/dev/pts/3 ruser=ansible-user rhost= user=ansible-user

But earlier in the logs I see

Jan 14 16:57:43 www ansible-setup: Invoked with filter=\* fact\_path=/etc/ansible/facts.d

So I know the sudo stuff is working for the “REMOTE\_MODULE setup” stuff.

I’m really at a loss on why this is happening!

---

<div class="post-metadata">

**Author:** ![Bob\_Tanner](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Bob\_Tanner](https://forum.ansible.com/u/Bob_Tanner)\
**Post date:** [January 15, 2015, 2:27am UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/8 "2015-01-15T02:27:10Z")

</div>

I think I found the problem and I think it’s a bug.

I have an inventory file that looks like this:

[web-servers]  
[www.domain1.com](http://www.domain1.com)  
[www.domain2.com](http://www.domain2.com)  
[www.one-off.com](http://www.one-off.com)  
[www.domain3.com](http://www.domain3.com)  
[www.domain4.com](http://www.domain4.com)

Once ansible hits the [www.one-off.com](http://www.one-off.com) every [www.domainX.com](http://www.domainX.com) after that has sudo authentication failure. If I comment out [www.one-off.com](http://www.one-off.com) everything works as expected (no hangs).

What’s different with [www.one-off.com](http://www.one-off.com)? It has a different (one-off) sudo password.

hosts\_vars/www.one-off.com.yml

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [January 15, 2015, 1:28pm UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/9 "2015-01-15T13:28:51Z")

</div>

seens like this issue  
[https://github.com/ansible/ansible/issues/9823](https://github.com/ansible/ansible/issues/9823)

---

<div class="post-metadata">

**Author:** ![Bob\_Tanner](https://avatars.discourse-cdn.com/v4/letter/b/49beb7/32.png) [@Bob\_Tanner](https://forum.ansible.com/u/Bob_Tanner)\
**Post date:** [January 15, 2015, 2:35pm UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/10 "2015-01-15T14:35:47Z")

</div>

Yes, that’s the issue.

The follow ups are not clear to me.

Is ansible behaving as expected? Meaning, if you set the ‘ansible\_sudo\_pass’ in a host\_vars it’s set from that point forward?

---

<div class="post-metadata">

**Author:** ![Brian\_Coca](https://avatars.discourse-cdn.com/v4/letter/b/6de8d8/32.png) [@Brian\_Coca](https://forum.ansible.com/u/Brian_Coca)\
**Post date:** [January 15, 2015, 3:01pm UTC](https://forum.ansible.com/t/apt-upgrade-dist-play-hangs/17252/11 "2015-01-15T15:01:15Z")

</div>

no, its a bug
