* [PATCH 1/3] generic: test symlink to very long path
@ 2016-06-14 7:53 Eryu Guan
2016-06-14 7:53 ` [PATCH 2/3] generic: test error handling on filesystem shutdown Eryu Guan
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Eryu Guan @ 2016-06-14 7:53 UTC (permalink / raw)
To: fstests; +Cc: Eryu Guan
Test symlink to very long path, so that path could not be hold in inode,
then check symlink file contains correct path.
There was a bug in CRC XFS, that the path in remote symlink was not
correct, this issue is fixed by this kernel commit
2ac56d3 xfs: fix remote symlinks on V5/CRC filesystems
Signed-off-by: Eryu Guan <eguan@redhat.com>
---
tests/generic/352 | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/generic/352.out | 2 ++
tests/generic/group | 1 +
3 files changed, 66 insertions(+)
create mode 100755 tests/generic/352
create mode 100644 tests/generic/352.out
diff --git a/tests/generic/352 b/tests/generic/352
new file mode 100755
index 0000000..253f09d
--- /dev/null
+++ b/tests/generic/352
@@ -0,0 +1,63 @@
+#! /bin/bash
+# FS QA Test 352
+#
+# Test symlink to very long path, check symlink file contains correct path.
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2016 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!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ cd /
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+rm -f $seqres.full
+
+# real QA test starts here
+_supported_fs generic
+_supported_os Linux
+_require_test
+
+linkfile=$TEST_DIR/$seq.symlink
+rm -f $linkfile
+
+# Create a symlink points to a very long path, so that the path could not be
+# hold in inode
+ln -s `perl -e 'print "a"x1023'` $linkfile
+
+# Check symlink contains the correct path.
+# 1023 chars are a bit long for golden image output, compute the md5 checksum
+readlink $linkfile | md5sum
+
+# success, all done
+status=0
+exit
diff --git a/tests/generic/352.out b/tests/generic/352.out
new file mode 100644
index 0000000..01c7e87
--- /dev/null
+++ b/tests/generic/352.out
@@ -0,0 +1,2 @@
+QA output created by 352
+cd3b0a56bc304075e28a20a4edd57068 -
diff --git a/tests/generic/group b/tests/generic/group
index 36fb759..4b65dcb 100644
--- a/tests/generic/group
+++ b/tests/generic/group
@@ -354,3 +354,4 @@
349 blockdev quick rw
350 blockdev quick rw
351 blockdev quick rw
+352 auto quick metadata
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/3] generic: test error handling on filesystem shutdown
2016-06-14 7:53 [PATCH 1/3] generic: test symlink to very long path Eryu Guan
@ 2016-06-14 7:53 ` Eryu Guan
2016-06-14 11:43 ` Brian Foster
2016-06-14 7:53 ` [PATCH 3/3] generic: test remount on I/O errors Eryu Guan
2016-06-14 11:43 ` [PATCH 1/3] generic: test symlink to very long path Brian Foster
2 siblings, 1 reply; 7+ messages in thread
From: Eryu Guan @ 2016-06-14 7:53 UTC (permalink / raw)
To: fstests; +Cc: Eryu Guan
Test XFS EFI/EFD error handling. Though it's an XFS bug, it can ran on
any filesystem supports shutdown.
This kernel commit fixed a hang on umount in XFS
8d99fe9 xfs: fix efi/efd error handling to avoid fs shutdown hangs
Though this bug is hard to hit, it's still good to have some coverage.
Signed-off-by: Eryu Guan <eguan@redhat.com>
---
tests/generic/353 | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/generic/353.out | 2 ++
tests/generic/group | 1 +
3 files changed, 76 insertions(+)
create mode 100755 tests/generic/353
create mode 100644 tests/generic/353.out
diff --git a/tests/generic/353 b/tests/generic/353
new file mode 100755
index 0000000..0516d8a
--- /dev/null
+++ b/tests/generic/353
@@ -0,0 +1,73 @@
+#! /bin/bash
+# FS QA Test 353
+#
+# Test XFS EFI/EFD error handling.
+#
+# This kernel commit fixed a hang on umount in XFS
+# 8d99fe9 xfs: fix efi/efd error handling to avoid fs shutdown hangs
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2016 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!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ cd /
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+rm -f $seqres.full
+
+# real QA test starts here
+_supported_fs generic
+_supported_os Linux
+_require_scratch
+_require_scratch_shutdown
+
+_scratch_mkfs >>$seqres.full 2>&1
+_scratch_mount
+
+# fsstress load to generate EFI(extent free intention/EFD(extent free done)
+$FSSTRESS_PROG -d $SCRATCH_MNT/testdir -n 99999 -p 16 -z -f fallocate=1 \
+ -f punch=1 -f creat=1 -f unlink=1 >>$seqres.full 2>&1 &
+sleep 5
+kill $!
+wait
+
+# shutdown filesystem, handle EFI/EFD in error path
+src/godown -f $SCRATCH_MNT
+
+# don't expect umount to hang. mount it again to do log replay and pass fs check
+_scratch_cycle_mount
+
+# success, all done
+echo "Silence is golden"
+status=0
+exit
diff --git a/tests/generic/353.out b/tests/generic/353.out
new file mode 100644
index 0000000..16ba4f1
--- /dev/null
+++ b/tests/generic/353.out
@@ -0,0 +1,2 @@
+QA output created by 353
+Silence is golden
diff --git a/tests/generic/group b/tests/generic/group
index 4b65dcb..0203afa 100644
--- a/tests/generic/group
+++ b/tests/generic/group
@@ -355,3 +355,4 @@
350 blockdev quick rw
351 blockdev quick rw
352 auto quick metadata
+353 auto quick metadata
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/3] generic: test remount on I/O errors
2016-06-14 7:53 [PATCH 1/3] generic: test symlink to very long path Eryu Guan
2016-06-14 7:53 ` [PATCH 2/3] generic: test error handling on filesystem shutdown Eryu Guan
@ 2016-06-14 7:53 ` Eryu Guan
2016-06-14 11:43 ` Brian Foster
2016-06-14 11:43 ` [PATCH 1/3] generic: test symlink to very long path Brian Foster
2 siblings, 1 reply; 7+ messages in thread
From: Eryu Guan @ 2016-06-14 7:53 UTC (permalink / raw)
To: fstests; +Cc: Eryu Guan
XFS had a bug to hang on remount in this case, this kernel commit fix
the issue.
5cb13dc cancel the setfilesize transation when io error happen
Signed-off-by: Eryu Guan <eguan@redhat.com>
---
tests/generic/354 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/generic/354.out | 2 ++
tests/generic/group | 1 +
3 files changed, 81 insertions(+)
create mode 100755 tests/generic/354
create mode 100644 tests/generic/354.out
diff --git a/tests/generic/354 b/tests/generic/354
new file mode 100755
index 0000000..4791613
--- /dev/null
+++ b/tests/generic/354
@@ -0,0 +1,78 @@
+#! /bin/bash
+# FS QA Test 354
+#
+# Test remount on I/O errors.
+#
+# XFS had a bug to hang on remount in this case, this kernel commit fix
+# the issue.
+# 5cb13dc cancel the setfilesize transation when io error happen
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2016 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!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ $UMOUNT_PROG $fs_mnt
+ _destroy_loop_device $loop_dev
+ cd /
+ rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+rm -f $seqres.full
+
+# real QA test starts here
+_supported_fs generic
+_supported_os Linux
+_require_scratch
+
+# create a small filesystem to hold another filesystem image
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mount
+
+# create the sparse fs image and mount point
+fs_img=$SCRATCH_MNT/fs.img
+fs_mnt=$SCRATCH_MNT/mnt
+$XFS_IO_PROG -fc "truncate 1g" $fs_img >>$seqres.full 2>&1
+mkdir -p $fs_mnt
+
+# mount loop device and create a larger file to hit I/O errors on loop device
+loop_dev=$(_create_loop_device $fs_img)
+_mkfs_dev $loop_dev
+_mount $loop_dev $fs_mnt
+$XFS_IO_PROG -fc "pwrite 0 520m" $fs_mnt/testfile >>$seqres.full 2>&1
+
+# remount should not hang
+$MOUNT_PROG -o remount,ro $fs_mnt
+
+# success, all done
+echo "Silence is golden"
+status=0
+exit
diff --git a/tests/generic/354.out b/tests/generic/354.out
new file mode 100644
index 0000000..8bc7ecf
--- /dev/null
+++ b/tests/generic/354.out
@@ -0,0 +1,2 @@
+QA output created by 354
+Silence is golden
diff --git a/tests/generic/group b/tests/generic/group
index 0203afa..d33dd69 100644
--- a/tests/generic/group
+++ b/tests/generic/group
@@ -356,3 +356,4 @@
351 blockdev quick rw
352 auto quick metadata
353 auto quick metadata
+354 auto quick
--
1.8.3.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] generic: test symlink to very long path
2016-06-14 7:53 [PATCH 1/3] generic: test symlink to very long path Eryu Guan
2016-06-14 7:53 ` [PATCH 2/3] generic: test error handling on filesystem shutdown Eryu Guan
2016-06-14 7:53 ` [PATCH 3/3] generic: test remount on I/O errors Eryu Guan
@ 2016-06-14 11:43 ` Brian Foster
2 siblings, 0 replies; 7+ messages in thread
From: Brian Foster @ 2016-06-14 11:43 UTC (permalink / raw)
To: Eryu Guan; +Cc: fstests
On Tue, Jun 14, 2016 at 03:53:39PM +0800, Eryu Guan wrote:
> Test symlink to very long path, so that path could not be hold in inode,
> then check symlink file contains correct path.
>
> There was a bug in CRC XFS, that the path in remote symlink was not
> correct, this issue is fixed by this kernel commit
>
> 2ac56d3 xfs: fix remote symlinks on V5/CRC filesystems
>
> Signed-off-by: Eryu Guan <eguan@redhat.com>
> ---
Looks fine to me:
Reviewed-by: Brian Foster <bfoster@redhat.com>
> tests/generic/352 | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++
> tests/generic/352.out | 2 ++
> tests/generic/group | 1 +
> 3 files changed, 66 insertions(+)
> create mode 100755 tests/generic/352
> create mode 100644 tests/generic/352.out
>
> diff --git a/tests/generic/352 b/tests/generic/352
> new file mode 100755
> index 0000000..253f09d
> --- /dev/null
> +++ b/tests/generic/352
> @@ -0,0 +1,63 @@
> +#! /bin/bash
> +# FS QA Test 352
> +#
> +# Test symlink to very long path, check symlink file contains correct path.
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2016 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!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> + cd /
> + rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +
> +rm -f $seqres.full
> +
> +# real QA test starts here
> +_supported_fs generic
> +_supported_os Linux
> +_require_test
> +
> +linkfile=$TEST_DIR/$seq.symlink
> +rm -f $linkfile
> +
> +# Create a symlink points to a very long path, so that the path could not be
> +# hold in inode
> +ln -s `perl -e 'print "a"x1023'` $linkfile
> +
> +# Check symlink contains the correct path.
> +# 1023 chars are a bit long for golden image output, compute the md5 checksum
> +readlink $linkfile | md5sum
> +
> +# success, all done
> +status=0
> +exit
> diff --git a/tests/generic/352.out b/tests/generic/352.out
> new file mode 100644
> index 0000000..01c7e87
> --- /dev/null
> +++ b/tests/generic/352.out
> @@ -0,0 +1,2 @@
> +QA output created by 352
> +cd3b0a56bc304075e28a20a4edd57068 -
> diff --git a/tests/generic/group b/tests/generic/group
> index 36fb759..4b65dcb 100644
> --- a/tests/generic/group
> +++ b/tests/generic/group
> @@ -354,3 +354,4 @@
> 349 blockdev quick rw
> 350 blockdev quick rw
> 351 blockdev quick rw
> +352 auto quick metadata
> --
> 1.8.3.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] generic: test error handling on filesystem shutdown
2016-06-14 7:53 ` [PATCH 2/3] generic: test error handling on filesystem shutdown Eryu Guan
@ 2016-06-14 11:43 ` Brian Foster
2016-06-14 11:54 ` Eryu Guan
0 siblings, 1 reply; 7+ messages in thread
From: Brian Foster @ 2016-06-14 11:43 UTC (permalink / raw)
To: Eryu Guan; +Cc: fstests
On Tue, Jun 14, 2016 at 03:53:40PM +0800, Eryu Guan wrote:
> Test XFS EFI/EFD error handling. Though it's an XFS bug, it can ran on
> any filesystem supports shutdown.
>
> This kernel commit fixed a hang on umount in XFS
> 8d99fe9 xfs: fix efi/efd error handling to avoid fs shutdown hangs
>
> Though this bug is hard to hit, it's still good to have some coverage.
>
> Signed-off-by: Eryu Guan <eguan@redhat.com>
> ---
The test looks fine, though I wonder if we already have other tests that
might reproduce this problem. On a quick look, generic/051, xfs/079 and
perhaps one or two others look similar to this test.
Have you verified that 1.) this test reproduces the original problem and
2.) that some of these other fsstress+godown tests do not (or are not as
effective)?
> tests/generic/353 | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++
> tests/generic/353.out | 2 ++
> tests/generic/group | 1 +
> 3 files changed, 76 insertions(+)
> create mode 100755 tests/generic/353
> create mode 100644 tests/generic/353.out
>
> diff --git a/tests/generic/353 b/tests/generic/353
> new file mode 100755
> index 0000000..0516d8a
> --- /dev/null
> +++ b/tests/generic/353
> @@ -0,0 +1,73 @@
> +#! /bin/bash
> +# FS QA Test 353
> +#
> +# Test XFS EFI/EFD error handling.
> +#
> +# This kernel commit fixed a hang on umount in XFS
> +# 8d99fe9 xfs: fix efi/efd error handling to avoid fs shutdown hangs
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2016 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!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> + cd /
> + rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +
> +rm -f $seqres.full
> +
> +# real QA test starts here
> +_supported_fs generic
> +_supported_os Linux
> +_require_scratch
> +_require_scratch_shutdown
> +
> +_scratch_mkfs >>$seqres.full 2>&1
> +_scratch_mount
> +
> +# fsstress load to generate EFI(extent free intention/EFD(extent free done)
> +$FSSTRESS_PROG -d $SCRATCH_MNT/testdir -n 99999 -p 16 -z -f fallocate=1 \
> + -f punch=1 -f creat=1 -f unlink=1 >>$seqres.full 2>&1 &
> +sleep 5
> +kill $!
> +wait
> +
> +# shutdown filesystem, handle EFI/EFD in error path
> +src/godown -f $SCRATCH_MNT
> +
> +# don't expect umount to hang. mount it again to do log replay and pass fs check
> +_scratch_cycle_mount
> +
> +# success, all done
> +echo "Silence is golden"
> +status=0
> +exit
> diff --git a/tests/generic/353.out b/tests/generic/353.out
> new file mode 100644
> index 0000000..16ba4f1
> --- /dev/null
> +++ b/tests/generic/353.out
> @@ -0,0 +1,2 @@
> +QA output created by 353
> +Silence is golden
> diff --git a/tests/generic/group b/tests/generic/group
> index 4b65dcb..0203afa 100644
> --- a/tests/generic/group
> +++ b/tests/generic/group
> @@ -355,3 +355,4 @@
> 350 blockdev quick rw
> 351 blockdev quick rw
> 352 auto quick metadata
> +353 auto quick metadata
We might want the (v2)log group as well.
Brian
> --
> 1.8.3.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] generic: test remount on I/O errors
2016-06-14 7:53 ` [PATCH 3/3] generic: test remount on I/O errors Eryu Guan
@ 2016-06-14 11:43 ` Brian Foster
0 siblings, 0 replies; 7+ messages in thread
From: Brian Foster @ 2016-06-14 11:43 UTC (permalink / raw)
To: Eryu Guan; +Cc: fstests
On Tue, Jun 14, 2016 at 03:53:41PM +0800, Eryu Guan wrote:
> XFS had a bug to hang on remount in this case, this kernel commit fix
> the issue.
>
> 5cb13dc cancel the setfilesize transation when io error happen
>
> Signed-off-by: Eryu Guan <eguan@redhat.com>
> ---
Reviewed-by: Brian Foster <bfoster@redhat.com>
> tests/generic/354 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++
> tests/generic/354.out | 2 ++
> tests/generic/group | 1 +
> 3 files changed, 81 insertions(+)
> create mode 100755 tests/generic/354
> create mode 100644 tests/generic/354.out
>
> diff --git a/tests/generic/354 b/tests/generic/354
> new file mode 100755
> index 0000000..4791613
> --- /dev/null
> +++ b/tests/generic/354
> @@ -0,0 +1,78 @@
> +#! /bin/bash
> +# FS QA Test 354
> +#
> +# Test remount on I/O errors.
> +#
> +# XFS had a bug to hang on remount in this case, this kernel commit fix
> +# the issue.
> +# 5cb13dc cancel the setfilesize transation when io error happen
> +#
> +#-----------------------------------------------------------------------
> +# Copyright (c) 2016 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!
> +trap "_cleanup; exit \$status" 0 1 2 3 15
> +
> +_cleanup()
> +{
> + $UMOUNT_PROG $fs_mnt
> + _destroy_loop_device $loop_dev
> + cd /
> + rm -f $tmp.*
> +}
> +
> +# get standard environment, filters and checks
> +. ./common/rc
> +. ./common/filter
> +
> +rm -f $seqres.full
> +
> +# real QA test starts here
> +_supported_fs generic
> +_supported_os Linux
> +_require_scratch
> +
> +# create a small filesystem to hold another filesystem image
> +_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
> +_scratch_mount
> +
> +# create the sparse fs image and mount point
> +fs_img=$SCRATCH_MNT/fs.img
> +fs_mnt=$SCRATCH_MNT/mnt
> +$XFS_IO_PROG -fc "truncate 1g" $fs_img >>$seqres.full 2>&1
> +mkdir -p $fs_mnt
> +
> +# mount loop device and create a larger file to hit I/O errors on loop device
> +loop_dev=$(_create_loop_device $fs_img)
> +_mkfs_dev $loop_dev
> +_mount $loop_dev $fs_mnt
> +$XFS_IO_PROG -fc "pwrite 0 520m" $fs_mnt/testfile >>$seqres.full 2>&1
> +
> +# remount should not hang
> +$MOUNT_PROG -o remount,ro $fs_mnt
> +
> +# success, all done
> +echo "Silence is golden"
> +status=0
> +exit
> diff --git a/tests/generic/354.out b/tests/generic/354.out
> new file mode 100644
> index 0000000..8bc7ecf
> --- /dev/null
> +++ b/tests/generic/354.out
> @@ -0,0 +1,2 @@
> +QA output created by 354
> +Silence is golden
> diff --git a/tests/generic/group b/tests/generic/group
> index 0203afa..d33dd69 100644
> --- a/tests/generic/group
> +++ b/tests/generic/group
> @@ -356,3 +356,4 @@
> 351 blockdev quick rw
> 352 auto quick metadata
> 353 auto quick metadata
> +354 auto quick
> --
> 1.8.3.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] generic: test error handling on filesystem shutdown
2016-06-14 11:43 ` Brian Foster
@ 2016-06-14 11:54 ` Eryu Guan
0 siblings, 0 replies; 7+ messages in thread
From: Eryu Guan @ 2016-06-14 11:54 UTC (permalink / raw)
To: Brian Foster; +Cc: fstests
On Tue, Jun 14, 2016 at 07:43:26AM -0400, Brian Foster wrote:
> On Tue, Jun 14, 2016 at 03:53:40PM +0800, Eryu Guan wrote:
> > Test XFS EFI/EFD error handling. Though it's an XFS bug, it can ran on
> > any filesystem supports shutdown.
> >
> > This kernel commit fixed a hang on umount in XFS
> > 8d99fe9 xfs: fix efi/efd error handling to avoid fs shutdown hangs
> >
> > Though this bug is hard to hit, it's still good to have some coverage.
> >
> > Signed-off-by: Eryu Guan <eguan@redhat.com>
> > ---
>
> The test looks fine, though I wonder if we already have other tests that
> might reproduce this problem. On a quick look, generic/051, xfs/079 and
> perhaps one or two others look similar to this test.
Just thought this test might be more targeted.
>
> Have you verified that 1.) this test reproduces the original problem and
> 2.) that some of these other fsstress+godown tests do not (or are not as
> effective)?
I ran this test tens of times, but I was unable to reproduce the
original problem. And I didn't see any hang triggered by other
fsstress+godown tests in my prevous testings. So I call it a "good to
have" test :)
But if we already have the coverage from other tests, I'm fine with
dropping it.
Thanks for the review!
Eryu
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-06-14 11:54 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-06-14 7:53 [PATCH 1/3] generic: test symlink to very long path Eryu Guan
2016-06-14 7:53 ` [PATCH 2/3] generic: test error handling on filesystem shutdown Eryu Guan
2016-06-14 11:43 ` Brian Foster
2016-06-14 11:54 ` Eryu Guan
2016-06-14 7:53 ` [PATCH 3/3] generic: test remount on I/O errors Eryu Guan
2016-06-14 11:43 ` Brian Foster
2016-06-14 11:43 ` [PATCH 1/3] generic: test symlink to very long path Brian Foster
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox