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