# Async "Fire and Forget" Issues - Ansible 1.7.1

**URL:** <https://forum.ansible.com/t/async-fire-and-forget-issues-ansible-1-7-1/17113>\
**Category:** Ansible Project\
**Created:** [December 19, 2014, 8:30pm UTC](https://forum.ansible.com/t/async-fire-and-forget-issues-ansible-1-7-1/17113 "2014-12-19T20:30:28Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Xavier\_Krantz](https://avatars.discourse-cdn.com/v4/letter/x/7bcc69/32.png) [@Xavier\_Krantz](https://forum.ansible.com/u/Xavier_Krantz)\
**Post date:** [December 19, 2014, 8:30pm UTC](https://forum.ansible.com/t/async-fire-and-forget-issues-ansible-1-7-1/17113/1 "2014-12-19T20:30:28Z")

</div>

Hello,

I am trying to use the Async capabilities of ansible to “fire and forget” a job and then check it later and wait till its end.  
I have followed the example mentioned here : [http://docs.ansible.com/playbooks\_async.html](http://docs.ansible.com/playbooks_async.html)

But I am facing an issue and I don’t really understand what’s happening.

The playbook looks like

`

- name: ‘MyPlay | Fire and Forget’  
command: “/opt/PROGRAM/bin/gremlin -e /opt/PROGRAM/scripts/load\_graph.grm …”  
async: 1000  
poll: 0  
register: load\_graph\_async

- name: ‘MyPlay | Check Job’  
async\_status: jid={{ load\_graph\_async.ansible\_job\_id }}  
register: job\_result  
until: job\_result.finished  
retries: 30  
`

The playbook logs look like :

`  
TASK: [MyPlay | Fire and forget] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
\<job 759951815367.27671\> finished on Host1

TASK: [MyPlay | Check Job] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
fatal: [Host1] =\> error while evaluating conditional: job\_result.finished  
`

What I do understand is :  
`job 759951815367.27671`

- 759951815367 is the JobID
- 27671 is the PID of the wrapper process

But when I go on the Host after the failed run, I saw

`root 27674 0.0 0.0 136548 3672 ? S 21:15 0:00 /usr/bin/python /home/USER/.ansible/tmp/ansible-tmp-1419020105.57-13577669747697/async_wrapper 759951815367 1000 /home/USER/.ansibl root 27675 0.0 0.0 136548 3900 ? S 21:15 0:00 \_ /usr/bin/python /home/USER/.ansible/tmp/ansible-tmp-1419020105.57-13577669747697/async_wrapper 759951815367 1000 /home/USER/.an root 27676 0.1 0.0 138008 7320 ? S 21:15 0:00 \_ /usr/bin/python /home/USER/.ansible/tmp/ansible-tmp-1419020105.57-13577669747697/command /home/USER/.ansible/tmp/ansible-tm root 27677 0.0 0.0 115504 1544 ? S 21:15 0:00 \_ /bin/bash /opt/PROGRAM/bin/gremlin -e /opt/PROGRAM/scripts/load_graph.grm ... root 27727 84.0 14.4 4875920 1187256 ? Sl 21:15 0:21 \_ /usr/lib/jvm/java-7-oracle/bin/java -server -Xms4g -Xmx4g -cp /opt/PROGRAM/conf:/opt/PROGRAM`

So any ideas ?

Thanks a lot for your help every one 🙂

---

<div class="post-metadata">

**Author:** ![Adam\_Miller](https://avatars.discourse-cdn.com/v4/letter/a/bbe5ce/32.png) [@Adam\_Miller](https://forum.ansible.com/u/Adam_Miller)\
**Post date:** [December 19, 2014, 9:11pm UTC](https://forum.ansible.com/t/async-fire-and-forget-issues-ansible-1-7-1/17113/2 "2014-12-19T21:11:50Z")

</div>

> Hello,
> 
> I am trying to use the Async capabilities of ansible to "fire and forget" a  
> job and then check it later and wait till its end.  
> I have followed the example mentioned here :  
> [http://docs.ansible.com/playbooks\_async.html](http://docs.ansible.com/playbooks_async.html)

Async "fire and forget" was a new feature in Ansible 1.8 so you'll  
need to update to get that functionality.

-AdamM

---

<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:** [December 20, 2014, 12:57am UTC](https://forum.ansible.com/t/async-fire-and-forget-issues-ansible-1-7-1/17113/3 "2014-12-20T00:57:02Z")

</div>

Well, it wasn’t a new feature in 1.8, though there was a bug fixed in the fire and forget operation when you don’t specify a lifetime of the process, IIRC - I remember you filing it, all the same 🙂

Let us know if you have the same problem in 1.8, regardless.

---

<div class="post-metadata">

**Author:** ![Xavier\_Krantz](https://avatars.discourse-cdn.com/v4/letter/x/7bcc69/32.png) [@Xavier\_Krantz](https://forum.ansible.com/u/Xavier_Krantz)\
**Post date:** [December 22, 2014, 6:47pm UTC](https://forum.ansible.com/t/async-fire-and-forget-issues-ansible-1-7-1/17113/4 "2014-12-22T18:47:47Z")

</div>

Ok, thanks all for your responses.

I will upgrade to Ansible 1.8. and be back to you.

---

<div class="post-metadata">

**Author:** ![Xavier\_Krantz](https://avatars.discourse-cdn.com/v4/letter/x/7bcc69/32.png) [@Xavier\_Krantz](https://forum.ansible.com/u/Xavier_Krantz)\
**Post date:** [December 22, 2014, 7:50pm UTC](https://forum.ansible.com/t/async-fire-and-forget-issues-ansible-1-7-1/17113/5 "2014-12-22T19:50:19Z")

</div>

No luck … it still does not work

`$ pip install Ansible $ pip list ansible (1.8.2) ecdsa (0.11) Jinja2 (2.7.3) MarkupSafe (0.23) paramiko (1.15.2) pip (1.5.6) pycrypto (2.6.1) PyYAML (3.11) setuptools (3.6) wsgiref (0.1.2)`

`  
$ ansible-playbook -i inventories/demo playbooks/run/load-graph.yml

PLAY [VNG-Bootstrap | create-graph] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*

GATHERING FACTS \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
ok: [Host1]  
Host1: importing …/…/…/vars/demo.yml

TASK: [Creating Titan graph schema] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
changed: [Host1]

TASK: [Loading data into Titan graph] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
\<job 356642401411.12344\> finished on Host1

TASK: [Check Loading data Status] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
fatal: [Host1] =\> error while evaluating conditional: load\_graph\_result.finished

FATAL: all hosts have already failed – aborting

PLAY RECAP \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
to retry, use: --limit @/Users/USER/create-load-graph.retry

Host1 : ok=10 changed=2 unreachable=1 failed=0  
`

Playbook changes

`  
diff --git a/deployment/ansible/playbooks/run/create-load-graph.yml b/deployment/ansible/‘playbooks/run/create-load-graph.yml’  
index 86a4fac…246f820 100644  
— a/deployment/ansible/playbooks/run/create-load-graph.yml  
+++ b/deployment/ansible/playbooks/run/create-load-graph.yml  
@@ -38,8 +38,15 @@

- async: 14400
- poll: 60

- async: 1000
- poll: 0
- register: load\_graph

---

<div class="post-metadata">

**Author:** ![Xavier\_Krantz](https://avatars.discourse-cdn.com/v4/letter/x/7bcc69/32.png) [@Xavier\_Krantz](https://forum.ansible.com/u/Xavier_Krantz)\
**Post date:** [December 22, 2014, 8:02pm UTC](https://forum.ansible.com/t/async-fire-and-forget-issues-ansible-1-7-1/17113/6 "2014-12-22T20:02:44Z")

</div>

Hello,

Gist is here it some body wants to give a look : [https://gist.github.com/xakraz/2ec7086d04630b833d23](https://gist.github.com/xakraz/2ec7086d04630b833d23)

Thanks again

---

<div class="post-metadata">

**Author:** ![Adam\_Miller](https://avatars.discourse-cdn.com/v4/letter/a/bbe5ce/32.png) [@Adam\_Miller](https://forum.ansible.com/u/Adam_Miller)\
**Post date:** [December 22, 2014, 11:10pm UTC](https://forum.ansible.com/t/async-fire-and-forget-issues-ansible-1-7-1/17113/7 "2014-12-22T23:10:04Z")

</div>

> Hello,
> 
> Gist is here it some body wants to give a look :  
> [https://gist.github.com/xakraz/2ec7086d04630b833d23](https://gist.github.com/xakraz/2ec7086d04630b833d23)

I think the problem is here:  
&nbsp;&nbsp;&nbsp;&nbsp;[https://gist.github.com/xakraz/2ec7086d04630b833d23#file-create-load-graph-yml-L46](https://gist.github.com/xakraz/2ec7086d04630b833d23#file-create-load-graph-yml-L46)

Where the variable is 'jiid':

&nbsp;&nbsp;&nbsp;&nbsp;async\_status: jiid={{ load\_graph.ansible\_job\_id }}

But should be 'jid'

&nbsp;&nbsp;&nbsp;&nbsp;async\_status: jid={{ load\_graph.ansible\_job\_id }}

Hopefully that works.

-AdamM

---

<div class="post-metadata">

**Author:** ![Xavier\_Krantz](https://avatars.discourse-cdn.com/v4/letter/x/7bcc69/32.png) [@Xavier\_Krantz](https://forum.ansible.com/u/Xavier_Krantz)\
**Post date:** [December 23, 2014, 12:26am UTC](https://forum.ansible.com/t/async-fire-and-forget-issues-ansible-1-7-1/17113/8 "2014-12-23T00:26:06Z")

</div>

Shame on me … I was spitting against ansible whereas I made a dummy typo in the YAML playbook file.

Thanks Adam.

But by the way, what is the cleanest manner to

- launch a long running task with Ansible
- check it is still running
- display progress

Do I have to use the async / poll statement and adjust their values to have a limit and fail if it was too long to run ?

Thanks again for your help !
