svn commit: r257374 - user/pho/stress2/misc

Peter Holm pho at FreeBSD.org
Wed Oct 30 07:51:09 UTC 2013


Author: pho
Date: Wed Oct 30 07:51:08 2013
New Revision: 257374
URL: http://svnweb.freebsd.org/changeset/base/257374

Log:
  Do not loop forever trying to unmount a busy file system.
  Detach from the controlling terminal to ignore SIGSTOP.
  
  Sponsored by:	EMC / Isilon storage division

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

Modified: user/pho/stress2/misc/syscall4.sh
==============================================================================
--- user/pho/stress2/misc/syscall4.sh	Wed Oct 30 06:18:54 2013	(r257373)
+++ user/pho/stress2/misc/syscall4.sh	Wed Oct 30 07:51:08 2013	(r257374)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 #
-# Copyright (c) 2011 Peter Holm
+# Copyright (c) 2011-2013 Peter Holm
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -59,17 +59,24 @@ chmod 777 $mntpoint
 
 sleeptime=${sleeptime:-12}
 for i in `jot 10`; do
-echo "Loop #$i"
 	(cd $mntpoint; /tmp/syscall4 $* < /dev/null) &
-	[ $# -eq 1 ] && sleep $sleeptime || sleep 180
-	killall -9 syscall4
+	[ $# -eq 1 ] && sleep $sleeptime || sleep 120
+	killall -9 syscall4 > /dev/null 2>&1
+	wait
 	ipcs | awk '/^(q|m|s)/ {print " -" $1, $2}' | xargs -L 1 ipcrm
 done
 
-while mount | grep $mntpoint | grep -q /dev/md; do
-	umount $mntpoint || sleep 1
+
+for i in `jot 10`; do
+	mount | grep -q md${mdstart}$part  && \
+		umount $mntpoint && mdconfig -d -u $mdstart && break
+	sleep 10
 done
-mdconfig -d -u $mdstart
+if mount | grep -q md${mdstart}$part; then
+	fstat $mntpoint
+	echo "umount $mntpoint failed"
+	exit 1
+fi
 rm -f /tmp/syscall4
 exit
 EOF
@@ -276,6 +283,9 @@ main(int argc, char **argv)
 				errx(0, "syscall #%d is on the ignore list.", syscallno);
 	}
 
+	if (daemon(0, 0) == -1)
+		err(1, "daemon()");
+
 	start = time(NULL);
 	while ((time(NULL) - start) < 120) {
 		if (fork() == 0) {


More information about the svn-src-user mailing list