svn commit: r352489 - stable/12/usr.sbin/periodic
Alan Somers
asomers at FreeBSD.org
Wed Sep 18 17:18:10 UTC 2019
Author: asomers
Date: Wed Sep 18 17:18:09 2019
New Revision: 352489
URL: https://svnweb.freebsd.org/changeset/base/352489
Log:
MFC r351192, r351203
r351192:
periodic: fix anticongestion for scripts run after security
Revision 316342, which introduced the anticongestion feature, failed to
consider that the periodic scripts are executed by a recursive invocation of
periodic. The recursive invocation wrongly cleaned up a temporary file that
should've been cleaned up only by the original invocation. The result is
that if the first script that requests an anticongestion sleep runs after
the security scripts, the sleep won't happen.
Fix this bug by delaying cleanup until the end of the original invocation.
PR: 236564
Submitted by: Yasuhiro KIMURA <yasu at utahime.org>
Reviewed by: imp
r351203:
periodic: replace "tty" with "test -t 0"
Apparently using tty for this purpose has been deprecated since 4.4 Lite.
Reviewed by: cy
Differential Revision: https://reviews.freebsd.org/D21318
Modified:
stable/12/usr.sbin/periodic/periodic.sh
Directory Properties:
stable/12/ (props changed)
Modified: stable/12/usr.sbin/periodic/periodic.sh
==============================================================================
--- stable/12/usr.sbin/periodic/periodic.sh Wed Sep 18 16:15:05 2019 (r352488)
+++ stable/12/usr.sbin/periodic/periodic.sh Wed Sep 18 17:18:09 2019 (r352489)
@@ -78,8 +78,13 @@ arg=$1
if [ -z "$PERIODIC_ANTICONGESTION_FILE" ] ; then
export PERIODIC_ANTICONGESTION_FILE=`mktemp ${TMPDIR:-/tmp}/periodic.anticongestion.XXXXXXXXXX`
+ remove_periodic_anticongestion_file=yes
+else
+ # We might be in a recursive invocation; let the top-level invocation
+ # remove the file.
+ remove_periodic_anticongestion_file=no
fi
-if tty > /dev/null 2>&1; then
+if [ -t 0 ]; then
export PERIODIC_IS_INTERACTIVE=1
fi
tmp_output=`mktemp ${TMPDIR:-/tmp}/periodic.XXXXXXXXXX`
@@ -147,4 +152,6 @@ esac
} | output_pipe $arg "$context"
rm -f $tmp_output
-rm -f $PERIODIC_ANTICONGESTION_FILE
+if [ $remove_periodic_anticongestion_file = "yes" ] ; then
+ rm -f $PERIODIC_ANTICONGESTION_FILE
+fi
More information about the svn-src-all
mailing list