Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 30 Apr 2018 08:35:47 +0000 (UTC)
From:      Peter Holm <pho@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r333103 - user/pho/stress2/misc
Message-ID:  <201804300835.w3U8ZlOn049645@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pho
Date: Mon Apr 30 08:35:47 2018
New Revision: 333103
URL: https://svnweb.freebsd.org/changeset/base/333103

Log:
  Fix cleanup to work with more than 31 mount points.
  Print action taken to spot test cases with missing cleanup.
  
  Sponsored by:	Dell EMC Isilon

Modified:
  user/pho/stress2/misc/cleanup.sh

Modified: user/pho/stress2/misc/cleanup.sh
==============================================================================
--- user/pho/stress2/misc/cleanup.sh	Mon Apr 30 08:33:40 2018	(r333102)
+++ user/pho/stress2/misc/cleanup.sh	Mon Apr 30 08:35:47 2018	(r333103)
@@ -32,39 +32,53 @@
 
 . ../default.cfg
 
-MOUNTS=31
-mount | grep -q "on $mntpoint " && umount -f $mntpoint
-rm -rf $mntpoint/stressX*
-rm -f /tmp/.snap/stress2* /var/.snap/stress2*
-rm -rf /tmp/stressX.control $RUNDIR
-[ -d `dirname "$diskimage"` ] || mkdir -p `dirname "$diskimage"`
-mkdir -p $RUNDIR
-chmod 0777 $RUNDIR
-
+bname=`basename $mntpoint`
+mounts=`mount | awk "/$bname/{print \\$3}"`
+nmounts=`sysctl -n hw.ncpu`		# Max number of mounts in use
+[ $nmounts -lt 31 ] && nmounts=31	# Arbitrary value
 s=0
-for i in `jot $MOUNTS 0 | sort -nr` ""; do
-	while mount | grep -q "on ${mntpoint}$i "; do
-		fstat -mf ${mntpoint}$i | sed 1d | awk '{print $3}' | \
+# Unmount the test mount points: /mnt, /mnt10 .. mnt31
+for i in $mounts; do
+	u=`echo $i | sed "s/\/$bname//"`
+	[ -z "$u" ] && u=$mdstart
+	echo "$u" | grep -Eq '^[0-9]+$' || continue
+	[ $u -lt $mdstart -o $u -gt $((mdstart + nmounts)) ] && continue
+	while mount | grep -q "on $i "; do
+		fstat -mf $i 2>/dev/null | sed 1d | awk '{print $3}' | \
 		    xargs kill
-		umount -f ${mntpoint}$i > /dev/null 2>&1 || s=1
+		echo "cleanup.sh: umount -f $i"
+		umount -f $i > /dev/null 2>&1 || s=1
 	done
 done
-# Delete the test mount points /mnt0 .. /mnt31
-for i in `jot $MOUNTS 0`; do
-	if ! mount | grep -q "on ${mntpoint}$i "; then
-		[ -d ${mntpoint}$i ] && find ${mntpoint}$i -delete \
+
+# Delete the test mount points /mnt10 .. /mnt31
+for i in `ls -d $mntpoint* 2>/dev/null | grep -Ev '^$mntpoint$'`; do
+	u=`echo $i | sed "s/\/$bname//"`
+	echo "$u" | grep -Eq '^[0-9]+$' || continue
+	[ $u -lt $mdstart -o $u -gt $((mdstart + nmounts)) ] && continue
+	if ! mount | grep -q "on $i "; then
+		[ -d $i ] && find $i -delete \
 			2>/dev/null
-		rm -rf ${mntpoint}$i > /dev/null 2>&1
+		rm -rf $i > /dev/null 2>&1
 	fi
 done
-[ -d "$mntpoint" ] && (cd $mntpoint && find . -delete)
+
+# Delete the memory disks
 units=`mdconfig -l | sed 's/md//g'`
 for u in $units; do
-	if [ $u -ge $mdstart -a $u -lt $((mdstart + MOUNTS)) ]; then
-	    mdconfig -d -u $u || s=1
-	    [ -c /dev/md$u ] && sleep .1
+	if [ $u -ge $mdstart -a $u -lt $((mdstart + nmounts)) ]; then
+		echo "cleanup.sh: mdconfig -d -u $u"
+		mdconfig -d -u $u || s=1
+		[ -c /dev/md$u ] && sleep .1
 	fi
 done
+
+[ -d "$mntpoint" ] && (cd $mntpoint && find . -delete)
+rm -f /tmp/.snap/stress2* /var/.snap/stress2*
+rm -rf /tmp/stressX.control $RUNDIR
+[ -d `dirname "$diskimage"` ] || mkdir -p `dirname "$diskimage"`
+mkdir -p $RUNDIR
+chmod 0777 $RUNDIR
 
 # Delete $testuser's ipcs
 ipcs | awk "\$5 ~/$testuser/ && \$6 ~/$testuser/ {print \"-\" \$1,\$2}" | \



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