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

Peter Holm pho at FreeBSD.org
Tue Feb 17 15:04:56 UTC 2015


Author: pho
Date: Tue Feb 17 15:04:53 2015
New Revision: 278903
URL: https://svnweb.freebsd.org/changeset/base/278903

Log:
  Changed the name of the snapshot file, make two tests less verbose
  and add a new tests  based on a bug report.
  
  Sponsored by:	 EMC / Isilon storage division

Added:
  user/pho/stress2/misc/snap9.sh   (contents, props changed)
Modified:
  user/pho/stress2/misc/snap.sh
  user/pho/stress2/misc/snap2-1.sh
  user/pho/stress2/misc/snap2.sh
  user/pho/stress2/misc/snap3.sh
  user/pho/stress2/misc/snap4.sh
  user/pho/stress2/misc/snap5-1.sh
  user/pho/stress2/misc/snap5.sh
  user/pho/stress2/misc/snap6.sh
  user/pho/stress2/misc/snap7.sh

Modified: user/pho/stress2/misc/snap.sh
==============================================================================
--- user/pho/stress2/misc/snap.sh	Tue Feb 17 14:48:16 2015	(r278902)
+++ user/pho/stress2/misc/snap.sh	Tue Feb 17 15:04:53 2015	(r278903)
@@ -32,25 +32,25 @@
 
 . ../default.cfg
 
-mount | grep -q "on /tmp " || exit 0
+mount | grep -q "on /tmp (ufs," || exit 0
 mount | grep -q "/dev/md$mdstart on $mntpoint" && umount $mntpoint
-rm -f /tmp/.snap/pho
-trap "rm -f /tmp/.snap/pho" 0
+rm -f /tmp/.snap/stress2
+trap "rm -f /tmp/.snap/stress2" 0
 
 for i in `jot 2`; do
-   mksnap_ffs /tmp /tmp/.snap/pho
-   mdconfig -a -t vnode -f /tmp/.snap/pho -u $mdstart -o readonly
+   mksnap_ffs /tmp /tmp/.snap/stress2
+   mdconfig -a -t vnode -f /tmp/.snap/stress2 -u $mdstart -o readonly
    mount -r /dev/md$mdstart $mntpoint
 
    ls -l $mntpoint > /dev/null
 
    umount $mntpoint
    mdconfig -d -u $mdstart
-   rm -f /tmp/.snap/pho
+   rm -f /tmp/.snap/stress2
 done
 
 
 for i in `jot 2`; do
-   mksnap_ffs /tmp /tmp/.snap/pho
-   rm -f /tmp/.snap/pho
+   mksnap_ffs /tmp /tmp/.snap/stress2
+   rm -f /tmp/.snap/stress2
 done

Modified: user/pho/stress2/misc/snap2-1.sh
==============================================================================
--- user/pho/stress2/misc/snap2-1.sh	Tue Feb 17 14:48:16 2015	(r278902)
+++ user/pho/stress2/misc/snap2-1.sh	Tue Feb 17 15:04:53 2015	(r278903)
@@ -42,15 +42,15 @@
 # --- trap 0xc, eip = 0xc060bcfb, esp = 0xe76728f8, ebp = 0xe767291c ---
 # g_io_request(c53ff7bc,c5051d40,d8c72408,c54ca110,e7672950) at g_io_request+0x5f
 
-mount | grep -q "on /tmp " || exit 0
-rm -f /tmp/.snap/pho
+mount | grep -q "on /tmp (ufs," || exit 0
+rm -f /tmp/.snap/stress2
 [ -d /tmp/.snap ] || mkdir /tmp/.snap
-trap "rm -f /tmp/.snap/pho" 0
+trap "rm -f /tmp/.snap/stress2" 0
 mount | grep "$mntpoint" | grep -q md$mdstart && umount $mntpoint
 mdconfig -l | grep -q md$mdstart &&  mdconfig -d -u $mdstart
 
-mksnap_ffs /tmp /tmp/.snap/pho
-mdconfig -a -t vnode -o readonly -f /tmp/.snap/pho -u $mdstart
+mksnap_ffs /tmp /tmp/.snap/stress2
+mdconfig -a -t vnode -o readonly -f /tmp/.snap/stress2 -u $mdstart
 mount -o ro /dev/md$mdstart $mntpoint
 
 ls -lR $mntpoint > /dev/null 2>&1 &
@@ -58,4 +58,4 @@ mdconfig -d -u $mdstart > /dev/null 2>&1
 
 umount -f $mntpoint
 mdconfig -d -u $mdstart
-rm -f /tmp/.snap/pho
+rm -f /tmp/.snap/stress2

Modified: user/pho/stress2/misc/snap2.sh
==============================================================================
--- user/pho/stress2/misc/snap2.sh	Tue Feb 17 14:48:16 2015	(r278902)
+++ user/pho/stress2/misc/snap2.sh	Tue Feb 17 15:04:53 2015	(r278903)
@@ -42,14 +42,14 @@
 
 . ../default.cfg
 
-mount | grep -q "on /tmp " || exit 0
-rm -f /tmp/.snap/pho
-trap "rm -f /tmp/.snap/pho" 0
+mount | grep -q "on /tmp (ufs," || exit 0
+rm -f /tmp/.snap/stress2
+trap "rm -f /tmp/.snap/stress2" 0
 mount | grep "${mntpoint}" | grep -q md${mdstart} && umount -f ${mntpoint}
 mdconfig -l | grep -q md${mdstart} &&  mdconfig -d -u ${mdstart}
 
-mksnap_ffs /tmp /tmp/.snap/pho
-mdconfig -a -t vnode -f /tmp/.snap/pho -u $mdstart -o readonly
+mksnap_ffs /tmp /tmp/.snap/stress2
+mdconfig -a -t vnode -f /tmp/.snap/stress2 -u $mdstart -o readonly
 mount -r /dev/md${mdstart} ${mntpoint}
 
 ls -lR  > /dev/null 2>&1 &
@@ -58,4 +58,4 @@ mdconfig -d -u $mdstart > /dev/null 2>&1
 umount ${mntpoint} > /dev/null 2>&1
 umount -f ${mntpoint} > /dev/null 2>&1
 mdconfig -d -u $mdstart
-rm -f /tmp/.snap/pho
+rm -f /tmp/.snap/stress2

Modified: user/pho/stress2/misc/snap3.sh
==============================================================================
--- user/pho/stress2/misc/snap3.sh	Tue Feb 17 14:48:16 2015	(r278902)
+++ user/pho/stress2/misc/snap3.sh	Tue Feb 17 15:04:53 2015	(r278903)
@@ -35,10 +35,10 @@
 # Test with two snapshots
 # 20070506 Page fault in g_io_request+0x7f
 
-mount | grep -q "on /tmp " || exit 0
-rm -f /tmp/.snap/pho.1
-rm -f /tmp/.snap/pho.2
-trap "rm -f /tmp/.snap/pho.?" 0
+mount | grep -q "on /tmp (ufs," || exit 0
+rm -f /tmp/.snap/stress2.1
+rm -f /tmp/.snap/stress2.2
+trap "rm -f /tmp/.snap/stress2.?" 0
 mount | grep $mntpoint | grep -q md && umount $mntpoint
 m1=$mdstart
 m2=$((m1 + 1))
@@ -47,11 +47,11 @@ mdconfig -l | grep -q md$m2 &&  mdconfig
 
 start=`date '+%s'`
 while [ `date '+%s'` -lt $((start + 1800)) ]; do
-   mksnap_ffs /tmp /tmp/.snap/pho.1
-   mksnap_ffs /tmp /tmp/.snap/pho.2
-   if [ -r /tmp/.snap/pho.1 -a  -r /tmp/.snap/pho.2 ]; then
-	   mdconfig -a -t vnode -f /tmp/.snap/pho.1 -u $m1 -o readonly
-	   mdconfig -a -t vnode -f /tmp/.snap/pho.2 -u $m2 -o readonly
+   mksnap_ffs /tmp /tmp/.snap/stress2.1
+   mksnap_ffs /tmp /tmp/.snap/stress2.2
+   if [ -r /tmp/.snap/stress2.1 -a  -r /tmp/.snap/stress2.2 ]; then
+	   mdconfig -a -t vnode -f /tmp/.snap/stress2.1 -u $m1 -o readonly
+	   mdconfig -a -t vnode -f /tmp/.snap/stress2.2 -u $m2 -o readonly
 	   mount -o ro /dev/md$m1 $mntpoint
 
 	   sleep 3
@@ -60,5 +60,5 @@ while [ `date '+%s'` -lt $((start + 1800
 	   mdconfig -d -u $m1
 	   mdconfig -d -u $m2
    fi
-   rm -f /tmp/.snap/pho.1 /tmp/.snap/pho.2
+   rm -f /tmp/.snap/stress2.1 /tmp/.snap/stress2.2
 done

Modified: user/pho/stress2/misc/snap4.sh
==============================================================================
--- user/pho/stress2/misc/snap4.sh	Tue Feb 17 14:48:16 2015	(r278902)
+++ user/pho/stress2/misc/snap4.sh	Tue Feb 17 15:04:53 2015	(r278903)
@@ -34,23 +34,23 @@
 
 . ../default.cfg
 
-mount | grep -q "on /tmp " || exit 0
+mount | grep -q "on /tmp (ufs," || exit 0
 mount | grep -q "/dev/md$mdstart on $mntpoint" && umount $mntpoint
 mdconfig -l | grep -q md$mdstart &&  mdconfig -d -u $mdstart
-rm -f /tmp/.snap/pho
-trap "rm -f /tmp/.snap/pho" 0
+rm -f /tmp/.snap/stress2
+trap "rm -f /tmp/.snap/stress2" 0
 
 start=`date '+%s'`
 while [ `date '+%s'` -lt $((start + 1800)) ]; do
-   mksnap_ffs /tmp /tmp/.snap/pho
-   mdconfig -a -t vnode -f /tmp/.snap/pho -u $mdstart -o readonly
+   mksnap_ffs /tmp /tmp/.snap/stress2
+   mdconfig -a -t vnode -f /tmp/.snap/stress2 -u $mdstart -o readonly
    mount -o ro /dev/md$mdstart $mntpoint
 
    ls -l $mntpoint > /dev/null
-   rm -f /tmp/.snap/pho
+   rm -f /tmp/.snap/stress2
    sleep 1
 
    umount $mntpoint
    mdconfig -d -u $mdstart
-   rm -f /tmp/.snap/pho
+   rm -f /tmp/.snap/stress2
 done

Modified: user/pho/stress2/misc/snap5-1.sh
==============================================================================
--- user/pho/stress2/misc/snap5-1.sh	Tue Feb 17 14:48:16 2015	(r278902)
+++ user/pho/stress2/misc/snap5-1.sh	Tue Feb 17 15:04:53 2015	(r278903)
@@ -32,11 +32,11 @@
 
 . ../default.cfg
 
-mount | grep -q "on /tmp " || exit 0
+mount | grep -q "on /tmp (ufs," || exit 0
 mnt2=${mntpoint}2
 [ ! -d $mnt2 ] && mkdir $mnt2
 
-trap "rm -f /tmp/.snap/pho" 0
+trap "rm -f /tmp/.snap/stress2" 0
 start=`date '+%s'`
 while [ `date '+%s'` -lt $((start + 1800)) ]; do
    if mount | grep -q "/dev/md$mdstart on $mnt2"; then
@@ -45,15 +45,16 @@ while [ `date '+%s'` -lt $((start + 1800
    if mdconfig -l | grep -q md$mdstart; then
       mdconfig -d -u $mdstart || exit 3
    fi
-   rm -f /tmp/.snap/pho
+   rm -f /tmp/.snap/stress2
 
    date '+%T'
-   mksnap_ffs /tmp /tmp/.snap/pho || continue
-   mdconfig -a -t vnode -f /tmp/.snap/pho -u $mdstart -o readonly || exit 4
+   mksnap_ffs /tmp /tmp/.snap/stress2 || continue
+   mdconfig -a -t vnode -f /tmp/.snap/stress2 -u $mdstart -o readonly ||
+       exit 4
    mount -o ro /dev/md$mdstart $mnt2 || exit 5
 
    ls -l $mnt2 > /dev/null
-   r=`head -c4 /dev/urandom | od -N2 -tu4 | sed -ne '1s/  *$//;1s/.* //p'`
+   r=`head -c4 /dev/random | od -N2 -tu4 | sed -ne '1s/  *$//;1s/.* //p'`
    sleep $(( r % 120 ))
 done
 mount | grep -q "/dev/md$mdstart on $mnt2" && umount $mnt2

Modified: user/pho/stress2/misc/snap5.sh
==============================================================================
--- user/pho/stress2/misc/snap5.sh	Tue Feb 17 14:48:16 2015	(r278902)
+++ user/pho/stress2/misc/snap5.sh	Tue Feb 17 15:04:53 2015	(r278903)
@@ -32,26 +32,26 @@
 
 . ../default.cfg
 
-mount | grep -q "on /tmp " || exit 0
+mount | grep -q "on /tmp (ufs," || exit 0
 mnt2=${mntpoint}2
 [ ! -d $mnt2 ] && mkdir $mnt2
 mount | grep -q "/dev/md$mdstart on $mnt2" && umount $mnt2
 mdconfig -l | grep -q md$mdstart &&  mdconfig -d -u $mdstart
-rm -f /tmp/.snap/pho
-trap "rm -f /tmp/.snap/pho" 0
+rm -f /tmp/.snap/stress2
+trap "rm -f /tmp/.snap/stress2" 0
 
 start=`date '+%s'`
 while [ `date '+%s'` -lt $((start + 1800)) ]; do
    date '+%T'
-   mksnap_ffs /tmp /tmp/.snap/pho
-   mdconfig -a -t vnode -f /tmp/.snap/pho -u $mdstart -o readonly
+   mksnap_ffs /tmp /tmp/.snap/stress2
+   mdconfig -a -t vnode -f /tmp/.snap/stress2 -u $mdstart -o readonly
    mount -o ro /dev/md$mdstart $mnt2
 
    ls -l $mnt2 > /dev/null
-   r=`head -c4 /dev/urandom | od -N2 -tu4 | sed -ne '1s/  *$//;1s/.* //p'`
+   r=`head -c4 /dev/random | od -N2 -tu4 | sed -ne '1s/  *$//;1s/.* //p'`
    sleep $(( r % 120 ))
 
    umount $mnt2
    mdconfig -d -u $mdstart
-   rm -f /tmp/.snap/pho
+   rm -f /tmp/.snap/stress2
 done

Modified: user/pho/stress2/misc/snap6.sh
==============================================================================
--- user/pho/stress2/misc/snap6.sh	Tue Feb 17 14:48:16 2015	(r278902)
+++ user/pho/stress2/misc/snap6.sh	Tue Feb 17 15:04:53 2015	(r278903)
@@ -25,21 +25,21 @@
 
 root=/var
 
-mount | grep -q "on /var " || exit 0
-rm -f $root/.snap/pho $root/big $root/big2
-trap "rm -f $root/.snap/pho $root/big $root/big2" 0
+mount | grep -q "on /var (ufs," || exit 0
+rm -f $root/.snap/stress2 $root/big $root/big2
+trap "rm -f $root/.snap/stress2 $root/big $root/big2" 0
 free=`df $root | tail -1 | awk '{print $4}'`
 dd if=/dev/zero of=$root/big bs=1m count=$(( free / 1024 - 90)) > /dev/null 2>&1
 df $root
 
 for i in `jot 1024`; do
    date
-   nice -20 mksnap_ffs $root $root/.snap/pho &
+   nice -20 mksnap_ffs $root $root/.snap/stress2 &
    dd if=/dev/zero of=$root/big2 bs=1m > /dev/null 2>&1
    wait
-   [ -f $root/.snap/pho ] && exit 0
-   rm -f $root/.snap/pho $root/big2
+   [ -f $root/.snap/stress2 ] && exit 0
+   rm -f $root/.snap/stress2 $root/big2
 done
 df $root
 
-rm -f $root/.snap/pho $root/big $root/big2
+rm -f $root/.snap/stress2 $root/big $root/big2

Modified: user/pho/stress2/misc/snap7.sh
==============================================================================
--- user/pho/stress2/misc/snap7.sh	Tue Feb 17 14:48:16 2015	(r278902)
+++ user/pho/stress2/misc/snap7.sh	Tue Feb 17 15:04:53 2015	(r278903)
@@ -35,23 +35,23 @@
 # Test with unmount and paralless access to mountpoint
 # 20070508 page fault in g_io_request+0xa6
 
-mount | grep -q "on /tmp " || exit 0
+mount | grep -q "on /tmp (ufs," || exit 0
 mount | grep -q "/dev/md$mdstart on $mntpoint" && umount $mntpoint
-rm -f /tmp/.snap/pho.1
-trap "rm -f /tmp/.snap/pho.1" 0
+rm -f /tmp/.snap/stress2.1
+trap "rm -f /tmp/.snap/stress2.1" 0
 mount | grep "$mntpoint" | grep -q md$mdstart && umount $mntpoint
 mdconfig -l | grep -q md$mdstart &&  mdconfig -d -u $mdstart
 
 start=`date '+%s'`
 while [ `date '+%s'` -lt $((start + 1800)) ]; do
-   mksnap_ffs /tmp /tmp/.snap/pho.1
-   mdconfig -a -t vnode -f /tmp/.snap/pho.1 -u $mdstart -o readonly
+   mksnap_ffs /tmp /tmp/.snap/stress2.1
+   mdconfig -a -t vnode -f /tmp/.snap/stress2.1 -u $mdstart -o readonly
    sh -c "while true; do ls $mntpoint > /dev/null;done" &
    for i in `jot 64`; do
-      mount -o ro /dev/md$mdstart $mntpoint
-      umount $mntpoint
+      mount -o ro /dev/md$mdstart $mntpoint 2>/dev/null
+      umount $mntpoint 2>/dev/null
    done
    kill $!
    mdconfig -d -u $mdstart
-   rm -f /tmp/.snap/pho.1
+   rm -f /tmp/.snap/stress2.1
 done

Added: user/pho/stress2/misc/snap9.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ user/pho/stress2/misc/snap9.sh	Tue Feb 17 15:04:53 2015	(r278903)
@@ -0,0 +1,70 @@
+#!/bin/sh
+
+#
+# Copyright (c) 2013 Peter Holm <pho at FreeBSD.org>
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+#
+# $FreeBSD$
+#
+
+# Disk full with one snapshot scenario
+# "panic: softdep_deallocate_dependencies: unrecovered I/O error" seen.
+
+# kern/162362: ufs with snapshot(s) panics when getting full
+
+
+[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
+
+. ../default.cfg
+
+exit 0	# Waiting for fix. Still an issue @ 20150217
+
+mount | grep $mntpoint | grep -q /dev/md && umount -f $mntpoint
+mdconfig -l | grep -q md$mdstart &&  mdconfig -d -u $mdstart
+
+mdconfig -a -t swap -s 2g -u $mdstart || exit 1
+bsdlabel -w md$mdstart auto
+newfs $newfs_flags md${mdstart}$part > /dev/null
+mount /dev/md${mdstart}$part $mntpoint
+
+dd if=/dev/zero of=$mntpoint/big1 bs=1m count=512 2>&1 | \
+	egrep -v "records|transferred"
+dd if=/dev/zero of=$mntpoint/big2 bs=1m count=512 2>&1 | \
+	egrep -v "records|transferred"
+dd if=/dev/zero of=$mntpoint/big3 bs=1m count=512 2>&1 | \
+	egrep -v "records|transferred"
+
+mksnap_ffs  $mntpoint  $mntpoint/.snap/snap
+
+for i in `jot 10`; do
+	dd if=/dev/zero of=$mntpoint/big.$i bs=1m count=512 2>&1 | \
+		egrep -v "records|transferred" || break
+done
+rm $mntpoint/big.*
+rm -f $mntpoint/.snap/snap
+
+while mount | grep "$mntpoint" | grep -q md$mdstart; do
+	umount /mnt || sleep 1
+done
+mdconfig -d -u $mdstart


More information about the svn-src-user mailing list