* [PATCH 0/7] xfstests: various fixes and additions for XFS
@ 2014-01-20 6:22 Dave Chinner
2014-01-20 6:22 ` [PATCH 1/7] xfs: test scratch device mkfs features Dave Chinner
` (8 more replies)
0 siblings, 9 replies; 10+ messages in thread
From: Dave Chinner @ 2014-01-20 6:22 UTC (permalink / raw)
To: xfs
Hi folks,
The following series cleans up some of the infrastructure for
handling XFS filesystems, and fixes a few failures that have
resulted from recent changes to mkfs defaults. There is also a new
log recovery test that uses fsstress to generate load and log
traffic. This was causing failures and hangs on recent kernels.
Cheers,
Dave.
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/7] xfs: test scratch device mkfs features
2014-01-20 6:22 [PATCH 0/7] xfstests: various fixes and additions for XFS Dave Chinner
@ 2014-01-20 6:22 ` Dave Chinner
2014-01-20 6:22 ` [PATCH 2/7] xfs: New _require_* tests for CRC enabled filesystems Dave Chinner
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Dave Chinner @ 2014-01-20 6:22 UTC (permalink / raw)
To: xfs
From: Dave Chinner <dchinner@redhat.com>
Some filesystem features are not compatible with certain tests, and
so we need to do require tests to determine if they are supported.
Some of these incompatibilities might be a result of optional mkfs
parameters specified in MKFS_OPTIONS. In this case, we don't want
scratch_mkfs_xfs stripping MKFS_OPTIONS and saying the feature is
supported when the next _scratch_mkfs command in the test will
result in a different mkfs command line.
Hence add a "mkfs supported" function to run a non-destructive mkfs
test to determine if the feature is supported by the current test's
mkfs configuration.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
common/rc | 105 +++++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 63 insertions(+), 42 deletions(-)
diff --git a/common/rc b/common/rc
index 68dc9a0..7a96484 100644
--- a/common/rc
+++ b/common/rc
@@ -360,53 +360,73 @@ _setup_large_xfs_fs()
return 0
}
+_scratch_mkfs_xfs_opts()
+{
+ mkfs_opts=$*
+
+ _scratch_options mkfs
+
+ $MKFS_XFS_PROG $SCRATCH_OPTIONS $mkfs_opts $SCRATCH_DEV
+}
+
+
+_scratch_mkfs_xfs_supported()
+{
+ mkfs_opts=$*
+
+ _scratch_options mkfs
+
+ $MKFS_XFS_PROG -N $MKFS_OPTIONS $SCRATCH_OPTIONS $mkfs_opts $SCRATCH_DEV
+}
+
_scratch_mkfs_xfs()
{
- # extra mkfs options can be added by tests
- local extra_mkfs_options=$*
+ # extra mkfs options can be added by tests
+ local extra_mkfs_options=$*
- local tmp_dir=/tmp/
+ local tmp_dir=/tmp/
- _scratch_options mkfs
+ # save mkfs output in case conflict means we need to run again.
+ # only the output for the mkfs that applies should be shown
+ _scratch_mkfs_xfs_opts $MKFS_OPTIONS $extra_mkfs_options \
+ 2>$tmp_dir.mkfserr 1>$tmp_dir.mkfsstd
+ local mkfs_status=$?
- # save mkfs output in case conflict means we need to run again.
- # only the output for the mkfs that applies should be shown
- $MKFS_XFS_PROG $SCRATCH_OPTIONS $MKFS_OPTIONS $extra_mkfs_options $SCRATCH_DEV \
- 2>$tmp_dir.mkfserr 1>$tmp_dir.mkfsstd
- local mkfs_status=$?
-
- # a mkfs failure may be caused by conflicts between
- # $MKFS_OPTIONS and $extra_mkfs_options
-
- if [ $mkfs_status -ne 0 -a ! -z "$extra_mkfs_options" ]; then
- echo "** mkfs failed with extra mkfs options added to \"$MKFS_OPTIONS\" by test $seq **" \
- >>$seqres.full
- echo "** attempting to mkfs using only test $seq options: $extra_mkfs_options **" \
- >>$seqres.full
- # running mkfs again. overwrite previous mkfs output files
- $MKFS_XFS_PROG $SCRATCH_OPTIONS $extra_mkfs_options $SCRATCH_DEV \
- 2>$tmp_dir.mkfserr 1>$tmp_dir.mkfsstd
- mkfs_status=$?
- fi
- if [ $mkfs_status -eq 0 -a "$LARGE_SCRATCH_DEV" = yes ]; then
- # manually parse the mkfs output to get the fs size in bytes
- local fs_size
- fs_size=`cat $tmp_dir.mkfsstd | perl -ne '
- if (/^data\s+=\s+bsize=(\d+)\s+blocks=(\d+)/) {
- my $size = $1 * $2;
- print STDOUT "$size\n";
- }'`
- _setup_large_xfs_fs $fs_size
- mkfs_status=$?
- fi
+ # a mkfs failure may be caused by conflicts between
+ # $MKFS_OPTIONS and $extra_mkfs_options
+ if [ $mkfs_status -ne 0 -a ! -z "$extra_mkfs_options" ]; then
+ (
+ echo -n "** mkfs failed with extra mkfs options "
+ echo "added to \"$MKFS_OPTIONS\" by test $seq **"
+ echo -n "** attempting to mkfs using only test $seq "
+ echo "options: $extra_mkfs_options **"
+ ) >> $seqres.full
+
+ # running mkfs again. overwrite previous mkfs output files
+ _scratch_mkfs_xfs_opts $extra_mkfs_options \
+ 2>$tmp_dir.mkfserr 1>$tmp_dir.mkfsstd
+ local mkfs_status=$?
+ fi
+
+ if [ $mkfs_status -eq 0 -a "$LARGE_SCRATCH_DEV" = yes ]; then
+ # manually parse the mkfs output to get the fs size in bytes
+ local fs_size
+ fs_size=`cat $tmp_dir.mkfsstd | perl -ne '
+ if (/^data\s+=\s+bsize=(\d+)\s+blocks=(\d+)/) {
+ my $size = $1 * $2;
+ print STDOUT "$size\n";
+ }'`
+ _setup_large_xfs_fs $fs_size
+ mkfs_status=$?
+ fi
- # output stored mkfs output
- cat $tmp_dir.mkfserr >&2
- cat $tmp_dir.mkfsstd
- rm -f $tmp_dir.mkfserr $tmp_dir.mkfsstd
+ # output stored mkfs output
+ cat $tmp_dir.mkfserr >&2
+ cat $tmp_dir.mkfsstd
+ rm -f $tmp_dir.mkfserr $tmp_dir.mkfsstd
- return $mkfs_status
+ return $mkfs_status
}
# xfs_check script is planned to be deprecated. But, we want to
@@ -1129,15 +1149,15 @@ _require_dm_flakey()
#
_require_projid32bit()
{
- _scratch_mkfs_xfs -f -i projid32bit=0 2>&1 >/dev/null \
- || _notrun "mkfs.xfs doesn't have projid32bit feature"
+ _scratch_mkfs_xfs_supported -i projid32bit=0 >/dev/null 2>&1 \
+ || _notrun "mkfs.xfs doesn't have projid32bit feature"
}
# this test requires the crc feature to be available in mkfs.xfs
#
_require_xfs_mkfs_crc()
{
- _scratch_mkfs_xfs -f -m crc=1 >/dev/null 2>&1 \
+ _scratch_mkfs_xfs_supported -m crc=1 >/dev/null 2>&1 \
|| _notrun "mkfs.xfs doesn't have crc feature"
}
@@ -1145,6 +1165,7 @@ _require_xfs_mkfs_crc()
#
_require_xfs_crc()
{
+ _scratch_mkfs_xfs -m crc=1 >/dev/null 2>&1 \
_scratch_mount >/dev/null 2>&1 \
|| _notrun "Kernel doesn't support crc feature"
umount $SCRATCH_MNT
--
1.8.4.rc3
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/7] xfs: New _require_* tests for CRC enabled filesystems
2014-01-20 6:22 [PATCH 0/7] xfstests: various fixes and additions for XFS Dave Chinner
2014-01-20 6:22 ` [PATCH 1/7] xfs: test scratch device mkfs features Dave Chinner
@ 2014-01-20 6:22 ` Dave Chinner
2014-01-20 6:22 ` [PATCH 3/7] xfs: add fsstress/recovery test Dave Chinner
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Dave Chinner @ 2014-01-20 6:22 UTC (permalink / raw)
To: xfs
From: Dave Chinner <dchinner@redhat.com>
CRCs always enabled 32 bit project inodes and attr2 formats, hence
they cannot be turned off. Add new require rules for the tests that
require attr and 16 bit project IDs so these tests are avoided on
CRC enabled filesystems.
Also, add a xfs_db write check so that we can avoid tests that are
dependent on xfs_db modifying filesystem structures as they will
fail on CRC enabled filessystems right now. This is just temporary
until full write xfs_db support is available.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
common/attr | 6 ++++++
common/rc | 11 ++++++++---
tests/shared/298 | 2 +-
tests/xfs/186 | 1 +
tests/xfs/187 | 32 ++++++++++++++++++--------------
tests/xfs/244 | 1 +
tests/xfs/278 | 1 +
tests/xfs/287 | 3 ++-
tests/xfs/291 | 2 +-
9 files changed, 39 insertions(+), 20 deletions(-)
diff --git a/common/attr b/common/attr
index 4a3ac9e..1f3e57f 100644
--- a/common/attr
+++ b/common/attr
@@ -190,6 +190,12 @@ _require_attrs()
rm -f $TEST_DIR/syscalltest.out
}
+_require_attr_v1()
+{
+ _scratch_mkfs_xfs_supported -i attr=1 >/dev/null 2>&1 \
+ || _notrun "attr v1 not supported on $SCRATCH_DEV"
+}
+
# getfattr -R returns info in readdir order which varies from fs to fs.
# This sorts the output by filename
_sort_getfattr_output()
diff --git a/common/rc b/common/rc
index 7a96484..d497818 100644
--- a/common/rc
+++ b/common/rc
@@ -1144,13 +1144,18 @@ _require_dm_flakey()
fi
}
-# this test requires the projid32bit feature to be available in
-# mkfs.xfs
+# this test requires the projid32bit feature to be available in mkfs.xfs.
#
_require_projid32bit()
{
+ _scratch_mkfs_xfs_supported -i projid32bit=1 >/dev/null 2>&1 \
+ || _notrun "mkfs.xfs doesn't have projid32bit feature"
+}
+
+_require_projid16bit()
+{
_scratch_mkfs_xfs_supported -i projid32bit=0 >/dev/null 2>&1 \
- || _notrun "mkfs.xfs doesn't have projid32bit feature"
+ || _notrun "16 bit project IDs not supported on $SCRATCH_DEV"
}
# this test requires the crc feature to be available in mkfs.xfs
diff --git a/tests/shared/298 b/tests/shared/298
index 4541798..6b5402c 100755
--- a/tests/shared/298
+++ b/tests/shared/298
@@ -70,7 +70,7 @@ get_free_sectors()
agsize=`xfs_info $loop_mnt | $SED_PROG -n 's/.*agsize=\(.*\) blks.*/\1/p'`
# Convert free space (agno, block, length) to (start sector, end sector)
$UMOUNT_PROG $loop_mnt
- $XFS_DB_PROG -c "freesp -d" $img_file | $SED_PROG '/^.*from/,$d'| \
+ $XFS_DB_PROG -r -c "freesp -d" $img_file | $SED_PROG '/^.*from/,$d'| \
$AWK_PROG -v spb=$sectors_per_block -v agsize=$agsize \
'{ print spb * ($1 * agsize + $2), spb * ($1 * agsize + $2 + $3) - 1 }'
;;
diff --git a/tests/xfs/186 b/tests/xfs/186
index 960aed1..8e18975 100755
--- a/tests/xfs/186
+++ b/tests/xfs/186
@@ -147,6 +147,7 @@ _supported_os Linux
_require_scratch
_require_attrs
+_require_attr_v1
rm -f $seqres.full
diff --git a/tests/xfs/187 b/tests/xfs/187
index 9cf1305..700ab04 100755
--- a/tests/xfs/187
+++ b/tests/xfs/187
@@ -58,20 +58,24 @@ _supported_os Linux
_require_scratch
_require_attrs
+_require_attr_v1
+_require_projid16bit
rm -f $seqres.full
-# lazysb and attr2 are in features2 and will require morebitsbit on
-# So test with lazysb and without it to see if the morebitsbit is
-# okay etc....
# Reset the options so that we can control what is going on here
export MKFS_OPTIONS=""
export MOUNT_OPTIONS=""
+# lazysb, attr2 and other feature bits are held in features2 and will require
+# morebitsbit on So test with lazysb and without it to see if the morebitsbit is
+# okay etc. If the mkfs defaults change, these need to change as well.
+export MKFS_NO_LAZY="-l lazy-count=0 -i projid32bit=0"
+export MKFS_LAZY="-l lazy-count=1 -i projid32bit=0"
+
# Make sure that when we think we are testing with morebits off
# that we really are.
-# Trying to future-proof in case mkfs defaults change.
-_scratch_mkfs -i attr=1 -l lazy-count=0 >/dev/null 2>&1
+_scratch_mkfs -i attr=1 $MKFS_NO_LAZY >/dev/null 2>&1
$XFS_DB_PROG -c version $SCRATCH_DEV 2>&1 >$tmp.db
if grep -i morebits $tmp.db
then
@@ -86,14 +90,14 @@ echo "*** 1. test attr2 mkfs and then noattr2 mount ***"
echo ""
echo "attr2 fs"
echo ""
-_scratch_mkfs -i attr=2 -l lazy-count=0 >/dev/null 2>&1
-$XFS_DB_PROG -c version $SCRATCH_DEV 2>&1 | _filter_version
+_scratch_mkfs -i attr=2 $MKFS_NO_LAZY >/dev/null 2>&1
+$XFS_DB_PROG -r -c version $SCRATCH_DEV 2>&1 | _filter_version
echo ""
echo "noattr2 fs"
echo ""
_scratch_mount -o noattr2
$UMOUNT_PROG $SCRATCH_MNT
-$XFS_DB_PROG -c version $SCRATCH_DEV 2>&1 | _filter_version
+$XFS_DB_PROG -r -c version $SCRATCH_DEV 2>&1 | _filter_version
# adding an EA will ensure the ATTR1 flag is turned on
echo ""
@@ -101,8 +105,8 @@ echo "*** 2. test attr2 mkfs and then noattr2 mount with 1 EA ***"
echo ""
echo "attr2 fs"
echo ""
-_scratch_mkfs -i attr=2 -l lazy-count=0 >/dev/null 2>&1
-$XFS_DB_PROG -c version $SCRATCH_DEV 2>&1 | _filter_version
+_scratch_mkfs -i attr=2 $MKFS_NO_LAZY >/dev/null 2>&1
+$XFS_DB_PROG -r -c version $SCRATCH_DEV 2>&1 | _filter_version
echo ""
echo "noattr2 fs"
echo ""
@@ -113,7 +117,7 @@ $SETFATTR_PROG -n user.test -v 0xbabe testfile
$GETFATTR_PROG testfile
cd $here
$UMOUNT_PROG $SCRATCH_MNT
-$XFS_DB_PROG -c version $SCRATCH_DEV 2>&1 | _filter_version
+$XFS_DB_PROG -r -c version $SCRATCH_DEV 2>&1 | _filter_version
echo ""
echo "*** 3. test noattr2 mount and lazy sb ***"
@@ -121,8 +125,8 @@ echo ""
echo ""
echo "attr2 fs"
echo ""
-_scratch_mkfs -i attr=2 -l lazy-count=1 >/dev/null 2>&1
-$XFS_DB_PROG -c version $SCRATCH_DEV 2>&1 | _filter_version
+_scratch_mkfs -i attr=2 $MKFS_LAZY >/dev/null 2>&1
+$XFS_DB_PROG -r -c version $SCRATCH_DEV 2>&1 | _filter_version
echo ""
echo "noattr2 fs"
echo ""
@@ -131,7 +135,7 @@ cd $SCRATCH_MNT
touch testfile
cd $here
$UMOUNT_PROG $SCRATCH_MNT
-$XFS_DB_PROG -c version $SCRATCH_DEV 2>&1 | _filter_version
+$XFS_DB_PROG -r -c version $SCRATCH_DEV 2>&1 | _filter_version
# success, all done
status=0
diff --git a/tests/xfs/244 b/tests/xfs/244
index d899a3d..6dd8224 100755
--- a/tests/xfs/244
+++ b/tests/xfs/244
@@ -48,6 +48,7 @@ _supported_fs xfs
_require_xfs_quota
_require_scratch
_require_projid32bit
+_require_projid16bit
export MOUNT_OPTIONS="-opquota"
diff --git a/tests/xfs/278 b/tests/xfs/278
index 938717d..dacd1fc 100755
--- a/tests/xfs/278
+++ b/tests/xfs/278
@@ -46,6 +46,7 @@ _cleanup()
_supported_fs xfs
_supported_os Linux
_require_scratch
+
_scratch_mkfs >/dev/null 2>&1
_scratch_mount
diff --git a/tests/xfs/287 b/tests/xfs/287
index 10853d1..445610b 100755
--- a/tests/xfs/287
+++ b/tests/xfs/287
@@ -45,7 +45,7 @@ _cleanup()
_print_projid()
{
- $XFS_DB_PROG -c "inode $1" \
+ $XFS_DB_PROG -r -c "inode $1" \
-c "print core.projid_lo" \
-c "print core.projid_hi" \
$SCRATCH_DEV
@@ -56,6 +56,7 @@ _supported_fs xfs
_require_xfs_quota
_require_scratch
_require_projid32bit
+_require_projid16bit
# create xfs fs without projid32bit ability, will be gained by xfs_admin
_scratch_mkfs_xfs -i projid32bit=0 -d size=200m >> $seqres.full \
diff --git a/tests/xfs/291 b/tests/xfs/291
index 7723b9e..03c4de9 100755
--- a/tests/xfs/291
+++ b/tests/xfs/291
@@ -70,7 +70,7 @@ xfs_io -f -c "pwrite 0 16m" -c "fsync" $SCRATCH_MNT/space_file.large >> $seqres.
# Take a look at freespace for any post-mortem on the test
_scratch_unmount
-xfs_db -c freesp $SCRATCH_DEV >> $seqres.full 2>&1
+xfs_db -r -c freesp $SCRATCH_DEV >> $seqres.full 2>&1
_scratch_mount
# Step 2: Make a bunch of (hopefully fragmented) multiblock
--
1.8.4.rc3
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/7] xfs: add fsstress/recovery test
2014-01-20 6:22 [PATCH 0/7] xfstests: various fixes and additions for XFS Dave Chinner
2014-01-20 6:22 ` [PATCH 1/7] xfs: test scratch device mkfs features Dave Chinner
2014-01-20 6:22 ` [PATCH 2/7] xfs: New _require_* tests for CRC enabled filesystems Dave Chinner
@ 2014-01-20 6:22 ` Dave Chinner
2014-01-20 6:22 ` [PATCH 4/7] xfs/073, 208: remove .full output before starting the test Dave Chinner
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Dave Chinner @ 2014-01-20 6:22 UTC (permalink / raw)
To: xfs
From: Dave Chinner <dchinner@redhat.com>
This has found several issues with recovery on CRC based
filesystems. It is based on a test case for a dir3 assert failure
provided by Michael L Semon.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
tests/xfs/306 | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/xfs/306.out | 2 ++
tests/xfs/group | 1 +
3 files changed, 108 insertions(+)
create mode 100644 tests/xfs/306
create mode 100644 tests/xfs/306.out
diff --git a/tests/xfs/306 b/tests/xfs/306
new file mode 100644
index 0000000..0794de3
--- /dev/null
+++ b/tests/xfs/306
@@ -0,0 +1,105 @@
+#!/bin/bash
+# FS QA Test No. xfs/306
+#
+# Basic log recovery stress test - do lots of stuff, shut down in the middle of
+# it and check that recovery runs to completion and everything can be
+# successfully removed afterwards..
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2013 Red Hat, Inc. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it would be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+#-----------------------------------------------------------------------
+#
+
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1 # failure is the default!
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+_cleanup()
+{
+ cd /
+ umount $SCRATCH_MNT 2>/dev/null
+ rm -f $tmp.*
+}
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+# real QA test starts here
+_supported_fs xfs
+_supported_os Linux
+
+_require_scratch
+
+rm -f $seqres.full
+
+_scratch_mkfs > $seqres.full 2>&1
+_scratch_mount
+
+SLEEP_TIME=$((30 * $TIME_FACTOR))
+PROCS=$((2 * LOAD_FACTOR))
+
+load_dir=$SCRATCH_MNT/test
+
+# let this run for a while
+$FSSTRESS_PROG -n10000000 -p $PROCS -d $load_dir >> $seqres.full 2>&1 &
+sleep $SLEEP_TIME
+killall -q $FSSTRESS_PROG
+wait
+sync
+umount $SCRATCH_MNT
+
+# now mount again, run the load again, this time with a shutdown.
+_scratch_mount
+$XFS_FSR_PROG -v $load_dir >> $seqres.full 2>&1
+$FSSTRESS_PROG -n10000000 -p $PROCS -d $load_dir >> $seqres.full 2>&1 &
+sleep $SLEEP_TIME
+sync
+
+# now shutdown and unmount
+sleep 5
+$here/src/godown $load_dir
+killall -q $FSSTRESS_PROG
+wait
+
+# for some reason fsstress processes manage to live on beyond the wait?
+sleep 5
+umount $SCRATCH_MNT
+
+# now recover, check the filesystem for consistency
+_scratch_mount
+umount $SCRATCH_MNT
+_check_scratch_fs
+
+# now clean up.
+_scratch_mount
+for d in $load_dir/*; do
+ rm -rf $d > /dev/null 2>&1 &
+done
+wait
+umount $SCRATCH_MNT
+_check_scratch_fs
+
+echo "No output is good. Failures are loud."
+
+status=0
+exit
diff --git a/tests/xfs/306.out b/tests/xfs/306.out
new file mode 100644
index 0000000..9fd18a4
--- /dev/null
+++ b/tests/xfs/306.out
@@ -0,0 +1,2 @@
+QA output created by 306
+No output is good. Failures are loud.
diff --git a/tests/xfs/group b/tests/xfs/group
index f6543ed..279ffe2 100644
--- a/tests/xfs/group
+++ b/tests/xfs/group
@@ -185,3 +185,4 @@
303 auto quick quota
304 auto quick quota
305 auto quota
+306 auto stress log metadata repair
--
1.8.4.rc3
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/7] xfs/073, 208: remove .full output before starting the test
2014-01-20 6:22 [PATCH 0/7] xfstests: various fixes and additions for XFS Dave Chinner
` (2 preceding siblings ...)
2014-01-20 6:22 ` [PATCH 3/7] xfs: add fsstress/recovery test Dave Chinner
@ 2014-01-20 6:22 ` Dave Chinner
2014-01-20 6:22 ` [PATCH 5/7] xfs: support xfs_metadump with external logs Dave Chinner
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Dave Chinner @ 2014-01-20 6:22 UTC (permalink / raw)
To: xfs
From: Dave Chinner <dchinner@redhat.com>
Otherwise we end up with an ever-growing file for every test that is
run and that makes it hard to isolate failures.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
tests/generic/208 | 2 ++
tests/xfs/073 | 2 ++
2 files changed, 4 insertions(+)
diff --git a/tests/generic/208 b/tests/generic/208
index badd522..58d1d08 100755
--- a/tests/generic/208
+++ b/tests/generic/208
@@ -45,6 +45,8 @@ _cleanup()
_supported_fs generic
_supported_os Linux
+rm -f $seqres.full
+
_run_aiodio aio-dio-invalidate-failure
exit $status
diff --git a/tests/xfs/073 b/tests/xfs/073
index 4280fa9..ca553ae 100755
--- a/tests/xfs/073
+++ b/tests/xfs/073
@@ -133,6 +133,8 @@ _supported_os Linux
_require_scratch
_require_loop
+rm -f $seqres.full
+
_scratch_mkfs_xfs -dsize=41m,agcount=2 | _filter_mkfs 2>/dev/null
_scratch_mount 2>/dev/null || _fail "initial scratch mount failed"
--
1.8.4.rc3
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 5/7] xfs: support xfs_metadump with external logs
2014-01-20 6:22 [PATCH 0/7] xfstests: various fixes and additions for XFS Dave Chinner
` (3 preceding siblings ...)
2014-01-20 6:22 ` [PATCH 4/7] xfs/073, 208: remove .full output before starting the test Dave Chinner
@ 2014-01-20 6:22 ` Dave Chinner
2014-01-20 6:22 ` [PATCH 6/7] xfs/104: use fixed log size Dave Chinner
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Dave Chinner @ 2014-01-20 6:22 UTC (permalink / raw)
To: xfs
From: Dave Chinner <dchinner@redhat.com>
When running xfstests with an external log, the metadump tests fail
with extra output like:
+filesystem is marked as having an external log; specify logdev on the mount command line.
+xfs_metadump: cannot read superblock for ag 0
Add a _scratch_metadump() function to handle different logdev
configurations automatically for metadump.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
common/rc | 10 ++++++++++
tests/xfs/253 | 3 +--
tests/xfs/291 | 2 +-
3 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/common/rc b/common/rc
index d497818..49c86de 100644
--- a/common/rc
+++ b/common/rc
@@ -317,6 +317,16 @@ _scratch_mkfs_options()
echo $SCRATCH_OPTIONS $MKFS_OPTIONS $* $SCRATCH_DEV
}
+_scratch_metadump()
+{
+ dumpfile=$1
+ options=
+
+ [ "$USE_EXTERNAL" = yes -a ! -z "$SCRATCH_LOGDEV" ] && \
+ options="-l $SCRATCH_LOGDEV"
+
+ xfs_metadump $options $SCRATCH_DEV $dumpfile
+}
_setup_large_xfs_fs()
{
diff --git a/tests/xfs/253 b/tests/xfs/253
index f491ef4..4119794 100755
--- a/tests/xfs/253
+++ b/tests/xfs/253
@@ -171,8 +171,7 @@ ls -R | od -c >> $seqres.full
cd $here
_scratch_unmount
-
-xfs_metadump -f "${SCRATCH_DEV}" "${METADUMP_FILE}"
+_scratch_metadump $METADUMP_FILE
# Now restore the obfuscated one back and take a look around
xfs_mdrestore "${METADUMP_FILE}" "${SCRATCH_DEV}"
diff --git a/tests/xfs/291 b/tests/xfs/291
index 03c4de9..d5a9b08 100755
--- a/tests/xfs/291
+++ b/tests/xfs/291
@@ -117,7 +117,7 @@ _xfs_check $SCRATCH_DEV >> $seqres.full 2>&1 || _fail "xfs_check failed"
# Yes they can! Now...
# Can xfs_metadump cope with this monster?
-xfs_metadump $SCRATCH_DEV $tmp.metadump || _fail "xfs_metadump failed"
+_scratch_metadump $tmp.metadump || _fail "xfs_metadump failed"
xfs_mdrestore $tmp.metadump $tmp.img || _fail "xfs_mdrestore failed"
xfs_repair $tmp.img >> $seqres.full 2>&1 || _fail "xfs_repair of metadump failed"
--
1.8.4.rc3
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 6/7] xfs/104: use fixed log size
2014-01-20 6:22 [PATCH 0/7] xfstests: various fixes and additions for XFS Dave Chinner
` (4 preceding siblings ...)
2014-01-20 6:22 ` [PATCH 5/7] xfs: support xfs_metadump with external logs Dave Chinner
@ 2014-01-20 6:22 ` Dave Chinner
2014-01-20 6:22 ` [PATCH 7/7] generic/204: use fixed log size for XFS Dave Chinner
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Dave Chinner @ 2014-01-20 6:22 UTC (permalink / raw)
To: xfs
From: Dave Chinner <dchinner@redhat.com>
In changing the default log sizes in mkfs, the freespace
calculations in xfs/104 are no longer valid and so it fails with
ENOSPC before running any of the growfs tests. Make the test use a
fixed log size of 5MB so that freespace calculations remain valid
and the test passes regardless of whether we have a new or old mkfs
binary.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
tests/xfs/104 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/xfs/104 b/tests/xfs/104
index d31cf16..e899aca 100755
--- a/tests/xfs/104
+++ b/tests/xfs/104
@@ -84,7 +84,7 @@ nags=4
size=`expr 120 \* 1048576` # 120 megabytes initially
sizeb=`expr $size / $dbsize` # in data blocks
echo "*** creating scratch filesystem"
-_create_scratch -dsize=${size} -dagcount=${nags}
+_create_scratch -lsize=5m -dsize=${size} -dagcount=${nags}
fillsize=`expr 110 \* 1048576` # 110 megabytes of filling
echo "*** using some initial space on scratch filesystem"
--
1.8.4.rc3
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 7/7] generic/204: use fixed log size for XFS
2014-01-20 6:22 [PATCH 0/7] xfstests: various fixes and additions for XFS Dave Chinner
` (5 preceding siblings ...)
2014-01-20 6:22 ` [PATCH 6/7] xfs/104: use fixed log size Dave Chinner
@ 2014-01-20 6:22 ` Dave Chinner
2014-01-22 11:52 ` [PATCH 0/7] xfstests: various fixes and additions " Christoph Hellwig
2014-01-22 13:26 ` Rich Johnston
8 siblings, 0 replies; 10+ messages in thread
From: Dave Chinner @ 2014-01-20 6:22 UTC (permalink / raw)
To: xfs
In changing the default log sizes in mkfs, the freespace
calculations in generic/204 are no longer valid and so it fails with
ENOSPC before ti has finished creating the necessary files.. Make
the test use a fixed log size of 5MB for XFS so that freespace
calculations remain valid and the test passes regardless of whether
we have a new or old mkfs binary.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
tests/generic/204 | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/tests/generic/204 b/tests/generic/204
index 598b805..13a762a 100755
--- a/tests/generic/204
+++ b/tests/generic/204
@@ -51,6 +51,10 @@ rm -f $seqres.full
_scratch_mkfs 2> /dev/null | _filter_mkfs 2> $tmp.mkfs > /dev/null
. $tmp.mkfs
+# For xfs, we need to handle the different default log sizes that different
+# versions of mkfs create. All should be valid with a 5MB log, so use that.
+[ $FSTYP = "xfs" ] && MKFS_OPTIONS="$MKFS_OPTIONS -l size=5m"
+
SIZE=`expr 104 \* 1024 \* 1024`
_scratch_mkfs_sized $SIZE $dbsize 2> /dev/null \
| _filter_mkfs 2> $tmp.mkfs > /dev/null
--
1.8.4.rc3
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 0/7] xfstests: various fixes and additions for XFS
2014-01-20 6:22 [PATCH 0/7] xfstests: various fixes and additions for XFS Dave Chinner
` (6 preceding siblings ...)
2014-01-20 6:22 ` [PATCH 7/7] generic/204: use fixed log size for XFS Dave Chinner
@ 2014-01-22 11:52 ` Christoph Hellwig
2014-01-22 13:26 ` Rich Johnston
8 siblings, 0 replies; 10+ messages in thread
From: Christoph Hellwig @ 2014-01-22 11:52 UTC (permalink / raw)
To: Dave Chinner; +Cc: xfs
On Mon, Jan 20, 2014 at 05:22:30PM +1100, Dave Chinner wrote:
> Hi folks,
>
> The following series cleans up some of the infrastructure for
> handling XFS filesystems, and fixes a few failures that have
> resulted from recent changes to mkfs defaults. There is also a new
> log recovery test that uses fsstress to generate load and log
> traffic. This was causing failures and hangs on recent kernels.
The whole series looks good to me,
Reviewed-by: Christoph Hellwig <hch@lst.de>
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/7] xfstests: various fixes and additions for XFS
2014-01-20 6:22 [PATCH 0/7] xfstests: various fixes and additions for XFS Dave Chinner
` (7 preceding siblings ...)
2014-01-22 11:52 ` [PATCH 0/7] xfstests: various fixes and additions " Christoph Hellwig
@ 2014-01-22 13:26 ` Rich Johnston
8 siblings, 0 replies; 10+ messages in thread
From: Rich Johnston @ 2014-01-22 13:26 UTC (permalink / raw)
To: Dave Chinner, xfs
On 01/20/2014 12:22 AM, Dave Chinner wrote:
> Hi folks,
>
> The following series cleans up some of the infrastructure for
> handling XFS filesystems, and fixes a few failures that have
> resulted from recent changes to mkfs defaults. There is also a new
> log recovery test that uses fsstress to generate load and log
> traffic. This was causing failures and hangs on recent kernels.
>
> Cheers,
>
> Dave.
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
>
This series has been committed.
Thanks
--Rich
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2014-01-22 13:26 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-20 6:22 [PATCH 0/7] xfstests: various fixes and additions for XFS Dave Chinner
2014-01-20 6:22 ` [PATCH 1/7] xfs: test scratch device mkfs features Dave Chinner
2014-01-20 6:22 ` [PATCH 2/7] xfs: New _require_* tests for CRC enabled filesystems Dave Chinner
2014-01-20 6:22 ` [PATCH 3/7] xfs: add fsstress/recovery test Dave Chinner
2014-01-20 6:22 ` [PATCH 4/7] xfs/073, 208: remove .full output before starting the test Dave Chinner
2014-01-20 6:22 ` [PATCH 5/7] xfs: support xfs_metadump with external logs Dave Chinner
2014-01-20 6:22 ` [PATCH 6/7] xfs/104: use fixed log size Dave Chinner
2014-01-20 6:22 ` [PATCH 7/7] generic/204: use fixed log size for XFS Dave Chinner
2014-01-22 11:52 ` [PATCH 0/7] xfstests: various fixes and additions " Christoph Hellwig
2014-01-22 13:26 ` Rich Johnston
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).