Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Jul 2020 17:42:31 +0000 (UTC)
From:      Jilles Tjoelker <jilles@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-12@freebsd.org
Subject:   svn commit: r363053 - stable/12/bin/sh/tests/execution
Message-ID:  <202007091742.069HgVxq023725@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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 "$!"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202007091742.069HgVxq023725>