summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorJilles Tjoelker <jilles@FreeBSD.org>2020-06-28 21:15:29 +0000
committerJilles Tjoelker <jilles@FreeBSD.org>2020-06-28 21:15:29 +0000
commitc1602cfd61840305f77b94c876f5fbb59aaec542 (patch)
tree96edfe338b5ba65940fdd811273265ba8ef1cd7e /bin
parent4c95d46303ee30e512a95b041922abaded944188 (diff)
downloadsrc-test-c1602cfd61840305f77b94c876f5fbb59aaec542.tar.gz
src-test-c1602cfd61840305f77b94c876f5fbb59aaec542.zip
sh/tests: Fix flaky execution/bg12.0
When job control is not enabled, the shell ignores SIGINT while waiting for a foreground process unless that process exits on SIGINT. In this case, the foreground process is sleep and it does not exit on SIGINT because the signal is only sent to the shell. Depending on order of events, this could cause the SIGINT to be unexpectedly ignored. On lightly loaded bare metal, the chance of this happening tends to be less than 0.01% but with higher loads and/or virtualization it becomes more likely. Starting the sleep in background and using the wait builtin ensures SIGINT will not be ignored. PR: 247559 Reported by: lwhsu MFC after: 1 week
Notes
Notes: svn path=/head/; revision=362737
Diffstat (limited to 'bin')
-rw-r--r--bin/sh/tests/execution/bg12.02
1 files changed, 1 insertions, 1 deletions
diff --git a/bin/sh/tests/execution/bg12.0 b/bin/sh/tests/execution/bg12.0
index 78102ecf6306d..a9bde6cac8a35 100644
--- a/bin/sh/tests/execution/bg12.0
+++ b/bin/sh/tests/execution/bg12.0
@@ -4,7 +4,7 @@ T=`mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXXXX`
trap 'rm -rf $T' 0
cd $T || exit 3
mkfifo fifo1
-{ trap - INT; : >fifo1; sleep 5; exit 4; } &
+{ trap - INT; : >fifo1; sleep 5 & wait; exit 4; } &
: <fifo1
kill -INT "$!"
wait "$!"