pgraph: Move the quiesce done indicator to avoid deadlock

This avoids a deadlock on resource failure when retry==0. Without this
we would never exit. This adds a test in too!
This commit is contained in:
James Shubin
2017-03-12 13:47:22 -04:00
parent 18c4e39ea3
commit 91af528ff8
3 changed files with 26 additions and 2 deletions

9
test/shell/exec-fail.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash -e
# should take a few seconds plus converged timeout, and test we don't hang!
# TODO: should we return a different exit code if the resources fail?
# TODO: should we be converged if one of the resources has permanently failed?
$timeout --kill-after=20s 15s ./mgmt run --yaml exec-fail.yaml --converged-timeout=5 --no-watch --no-pgp --tmp-prefix &
pid=$!
wait $pid # get exit status
exit $?

15
test/shell/exec-fail.yaml Normal file
View File

@@ -0,0 +1,15 @@
---
graph: mygraph
resources:
exec:
- name: exec1
cmd: false this should fail but not hang
shell: ''
timeout: 0
watchcmd: sleep 5s
watchshell: ''
ifcmd: ''
ifshell: ''
pollint: 0
state: present
edges: []