resources: exec: Avoid possible deadlock race

Some of the early code I wrote probably wouldn't pass my own reviews
today. Here's one example of a rare deadlock that could sometimes occur
when a Process/CheckApply caused a shutdown, but the bufio tried to send
on a channel that nobody was going to read any more. Now we properly
unblock that send with a context.
This commit is contained in:
James Shubin
2019-02-24 11:37:25 -05:00
parent 62a6e0da1d
commit 652b657809
2 changed files with 16 additions and 5 deletions

View File

@@ -6,7 +6,7 @@
# 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 "$MGMT" run --converged-timeout=15 --no-watch --no-pgp --tmp-prefix yaml --yaml exec-fail.yaml &
# there's no ^C sent... it should shutdown on its own
pid=$!
wait $pid # get exit status
exit $?