Author: jilles Date: Thu Jul 9 17:42:31 2020 New Revision: 363053 URL: https://svnweb.freebsd.org/changeset/base/363053
Log: MFC r362737: 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 Modified: stable/12/bin/sh/tests/execution/bg12.0 Directory Properties: stable/12/ (props changed) Modified: stable/12/bin/sh/tests/execution/bg12.0 ============================================================================== --- stable/12/bin/sh/tests/execution/bg12.0 Thu Jul 9 17:27:14 2020 (r363052) +++ stable/12/bin/sh/tests/execution/bg12.0 Thu Jul 9 17:42:31 2020 (r363053) @@ -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 "$!" _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"