mirror of https://github.com/ansible/ansible.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
869 B
Bash
21 lines
869 B
Bash
2 years ago
|
#!/usr/bin/env bash
|
||
|
|
||
|
set -eu
|
||
|
|
||
|
echo "testing for stdio deadlock on forked workers (10s timeout)..."
|
||
|
|
||
|
# Enable a callback that trips deadlocks on forked-child stdout, time out after 10s; forces running
|
||
|
# in a pty, since that tends to be much slower than raw file I/O and thus more likely to trigger the deadlock.
|
||
|
# Redirect stdout to /dev/null since it's full of non-printable garbage we don't want to display unless it failed
|
||
|
ANSIBLE_CALLBACKS_ENABLED=spewstdio SPEWSTDIO_ENABLED=1 python run-with-pty.py timeout 10s ansible-playbook -i hosts -f 5 test.yml > stdout.txt && RC=$? || RC=$?
|
||
|
|
||
|
if [ $RC != 0 ]; then
|
||
|
echo "failed; likely stdout deadlock. dumping raw output (may be very large)"
|
||
|
cat stdout.txt
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
grep -q -e "spewstdio STARTING NONPRINTING SPEW ON BACKGROUND THREAD" stdout.txt || (echo "spewstdio callback was not enabled"; exit 1)
|
||
|
|
||
|
echo "PASS"
|