Forgot to mention that I know how to work around this with async & polling, but I still would like to know if this is a bug or not.
/Micke On Thursday, September 25, 2014 11:33:26 AM UTC+2, Mikael Sandström wrote: > > Hi, > > I'm using Ansible to install Oracle and it's been working great on 1.6, > but when I hit 1.7 some of the tasks using the shell module started > behaving differently, specifically with jobs in the background. > The oracle installer (runInstaller) is a shell script that kicks off a > java process (and puts it in the background) which then performs the actual > installation. In 1.6 the play waited for the background job to finish > before moving on to the next task, but from 1.7 it just waits for the > 'kickoff' script to come back and then moves on -> the play fails. > > I'm not sure if the old behaviour is the correct one, but I certainly hope > so. > > I''ve got a small testcase which exactly mimics the behaviour I'm seeing. > Gist is here <https://gist.github.com/oravirt/49dedc8c30baa43d9aaf> (2 > shellscripts & a playbook) > > kickoff.sh : Starts another script (sleep.sh) in the background > sleep.sh: Does a few echo's with a sleep inbetween > > 1.6 behaviour > > [miksan@ponderstibbons ansible]$ ansible --version > ansible 1.6.10 > [miksan@ponderstibbons ansible]$ time ansible-playbook background.yml > > > PLAY [localhost] > ************************************************************** > > > TASK: [run shellscript] > ******************************************************* > changed: [localhost] > > > TASK: [debug var=sleep.stdout_lines] > ****************************************** > ok: [localhost] => { > "sleep.stdout_lines": [ > "Kicking off other script at Thu Sep 25 10:54:38 CEST 2014", > "All finished. Returned from other script at Thu Sep 25 10:54:38 > CEST 2014", # <--- kickoff.sh finishes, but waits for sleep.sh to finish > "Starting /tmp/sleep.sh at Thu Sep 25 10:54:38 CEST 2014", # <-- > sleep.sh starts (in the background) > "Sleeping 30 seconds", > "/tmp/sleep.sh Woke up", > "Sleeping another 30 seconds", > "/tmp/sleep.sh Done. Exiting /tmp/sleep.sh at Thu Sep 25 10:55:38 > CEST 2014" # <--- sleep.sh finishes > ] > } > > > PLAY RECAP > ******************************************************************** > localhost : ok=2 changed=1 unreachable=0 failed= > 0 > > > > > real 1m0.288s > user 0m0.147s > sys 0m0.039s > > > 1.7 behaviour > > [miksan@ponderstibbons ansible]$ ansible --version > ansible 1.7.2 > [miksan@ponderstibbons ansible]$ time ansible-playbook background.yml > > > PLAY [localhost] > ************************************************************** > > > TASK: [run shellscript] > ******************************************************* > changed: [localhost] > > > TASK: [debug var=sleep.stdout_lines] > ****************************************** > ok: [localhost] => { > "sleep.stdout_lines": [ > "Kicking off other script at Thu Sep 25 10:45:15 CEST 2014", > "All finished. Returned from other script at Thu Sep 25 10:45:15 CEST > 2014", # <--- kickoff.sh finishes but doesnt wait for sleep.sh to finish > "Starting /tmp/sleep.sh at Thu Sep 25 10:45:15 CEST 2014", # <--- > sleep.sh starts (in the background) but never gets to finish > "Sleeping 30 seconds" > ] > } > > > PLAY RECAP > ******************************************************************** > localhost : ok=2 changed=1 unreachable=0 failed=0 > > > > > real 0m1.291s > user 0m0.148s > sys 0m0.034s > > > Is this a bug in 1.7 (or 1.6)? How should I approach this? > > regards > /Micke > > > > > > > > > > > > > > > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/700a7a8f-0d10-4ba2-99b5-f35554b7b405%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
