stress2: Updated tests as a result of the latest updates to fsck_ffs(8)
This commit is contained in:
parent
98b13e25fd
commit
dd89489769
@ -80,15 +80,15 @@ chk() {
|
||||
clean=0
|
||||
rerun=0
|
||||
waccess=0
|
||||
fsck_ffs -fy $1 > $log 2>&1
|
||||
timeout 5m fsck_ffs -fy $1 > $log 2>&1
|
||||
r=$?
|
||||
if grep -qE "Cannot find file system superblock|Superblock check-hash failed" $log; then
|
||||
if grep -qiE "super-?block.*failed" $log; then
|
||||
for b in $backups; do
|
||||
echo "Using alternate SB $b"
|
||||
asbs=$((asbs + 1))
|
||||
fsck_ffs -b $b -fy $1 > $log 2>&1
|
||||
r=$?
|
||||
grep -qE "Cannot find file system superblock|Superblock check-hash failed" $log ||
|
||||
grep -qiE "super-?block.*failed" $log ||
|
||||
break
|
||||
done
|
||||
usedasb=1
|
||||
@ -110,7 +110,7 @@ clean=0
|
||||
s=0
|
||||
start=`date +%s`
|
||||
while [ $((`date +%s` - start)) -lt 300 ]; do
|
||||
mount /dev/md$u2 $mp2 || { s=101; break; }
|
||||
mount /dev/md$u2 $mp2 || break
|
||||
ls -lR $mp2 > /dev/null || { s=102; echo "ls failed"; break; }
|
||||
touch $mp2/`jot -rc 8 a z | tr -d '\n'`
|
||||
while mount | grep -q "on $mp2 "; do umount $mp2; done
|
||||
@ -128,6 +128,7 @@ while [ $((`date +%s` - start)) -lt 300 ]; do
|
||||
gzip < $diskimage > $backup
|
||||
fi
|
||||
fsync $backup
|
||||
sync
|
||||
|
||||
for i in `jot 5`; do
|
||||
[ $i -gt 2 ] && echo "fsck run #$i"
|
||||
@ -135,7 +136,7 @@ while [ $((`date +%s` - start)) -lt 300 ]; do
|
||||
[ $rerun -eq 1 ] && { reruns=$((reruns + 1)); continue; }
|
||||
[ $clean -eq 1 ] && { cleans=$((cleans + 1)); break; }
|
||||
[ -f fsck_ffs.core ] &&
|
||||
{ cp $diskimage \
|
||||
{ cp -v $diskimage \
|
||||
/tmp/fsck_ffs.core.diskimage.`date +%Y%m%dT%H%M%S`; break 2; }
|
||||
done
|
||||
[ $clean -ne 1 ] && break
|
||||
@ -165,7 +166,7 @@ if [ $clean -ne 1 ]; then
|
||||
cp -v $log /tmp
|
||||
[ $s -eq 0 ] && s=106
|
||||
fi
|
||||
echo * | grep -q core && { ls -l *.core; cp $log /tmp; exit 106; } ||
|
||||
echo * | grep -q core && { ls -l *.core; cp -v $log /tmp; exit 106; } ||
|
||||
rm -f $backup
|
||||
[ $s -eq 101 ] && rm -f $backup # mount error breakout
|
||||
cd /tmp
|
||||
|
@ -80,12 +80,14 @@ chk() {
|
||||
rerun=0
|
||||
fsck_ffs -fy $1 > $log 2>&1
|
||||
r=$?
|
||||
if grep -qE "Cannot find file system superblock|Superblock check-hash failed" $log; then
|
||||
if grep -qiE "super-?block.*failed" $log; then
|
||||
for b in $backups; do
|
||||
echo "fsck_ffs -b $b -fy $1"
|
||||
fsck_ffs -b $b -fy $1 > $log 2>&1
|
||||
r=$?
|
||||
grep -qE "Cannot find file system superblock|Superblock check-hash failed" $log ||
|
||||
grep -qiE "super-?block.*failed" $log ||
|
||||
break
|
||||
echo "Checking next SB"
|
||||
done
|
||||
usedasb=1
|
||||
else
|
||||
@ -102,8 +104,12 @@ clean=0
|
||||
s=0
|
||||
start=`date +%s`
|
||||
while [ $((`date +%s` - start)) -lt 300 ]; do
|
||||
mount /dev/md$u2 $mp2 || { s=101; break; }
|
||||
ls -lR $mp2 > /dev/null || { s=102; echo "ls failed"; break; }
|
||||
mount /dev/md$u2 $mp2 || break
|
||||
if ! ls -lR $mp2 > /dev/null; then
|
||||
s=102
|
||||
echo "ls failed"; grep "core dumped" /var/log/messages | tail -1
|
||||
break
|
||||
fi
|
||||
touch $mp2/`jot -rc 8 a z | tr -d '\n'`
|
||||
while mount | grep -q "on $mp2 "; do umount $mp2; done
|
||||
echo * | grep -q core && break
|
||||
@ -119,19 +125,21 @@ while [ $((`date +%s` - start)) -lt 300 ]; do
|
||||
gzip < $diskimage > $backup
|
||||
fi
|
||||
fsync $backup
|
||||
sync
|
||||
|
||||
for i in `jot 5`; do
|
||||
[ $i -gt 2 ] && echo "fsck run #$i"
|
||||
chk $diskimage
|
||||
[ $rerun -eq 1 ] && { reruns=$((reruns + 1)); continue; }
|
||||
[ $clean -eq 1 ] && { cleans=$((cleans + 1)); break; }
|
||||
[ -f fsck_ffs.core ] && break 2
|
||||
[ -f fsck_ffs.core ] &&
|
||||
{ cp -v $diskimage \
|
||||
/tmp/fsck_ffs.core.diskimage.`date +%Y%m%dT%H%M%S`; break 2; }
|
||||
done
|
||||
if [ $clean -eq 1 ]; then
|
||||
# echo "Checking clean claim"
|
||||
fsck_ffs -fy $diskimage > $log 2>&1
|
||||
if grep -q MODIFIED $log; then
|
||||
echo "fsck of "clean" FS found more issues:"
|
||||
echo "*** fsck of \"clean\" FS found more issues:"
|
||||
cat $log
|
||||
s=1
|
||||
break
|
||||
@ -149,7 +157,7 @@ for i in `jot 5`; do
|
||||
done
|
||||
mdconfig -d -u $u2 2>/dev/null # XXX when mount fails
|
||||
|
||||
[ $s -eq 0 ] && rm -f $backup
|
||||
[ $s -eq 0 ] && rm -f $backup || echo "Preserved $backup due to status code $s"
|
||||
cd /tmp
|
||||
for i in `jot 5`; do
|
||||
umount $mp1 && break
|
||||
|
Loading…
x
Reference in New Issue
Block a user