From: Amir Goldstein <amir73il@gmail.com>
To: Zorro Lang <zlang@redhat.com>
Cc: "Darrick J . Wong" <darrick.wong@oracle.com>,
Dave Chinner <david@fromorbit.com>,
fstests@vger.kernel.org
Subject: [PATCH v2 2/3] fstests: unfreeze fs on cleanup routines
Date: Tue, 21 Jun 2022 20:37:28 +0300 [thread overview]
Message-ID: <20220621173729.2135249-3-amir73il@gmail.com> (raw)
In-Reply-To: <20220621173729.2135249-1-amir73il@gmail.com>
Many of tests that freeze fs do not make sure that fs is unfrozen on
test termination.
Some tests also need to kill and wait for writer processes after
unfreezing the fs.
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
tests/generic/068 | 14 ++++++++++----
tests/generic/085 | 3 +++
tests/generic/280 | 13 ++++++++++++-
tests/generic/390 | 8 +++++++-
tests/generic/459 | 2 ++
tests/generic/491 | 9 +++++++++
tests/xfs/011 | 3 ++-
tests/xfs/119 | 9 +++++++++
tests/xfs/297 | 11 +++++++++++
tests/xfs/318 | 3 ++-
tests/xfs/325 | 3 ++-
tests/xfs/438 | 2 ++
12 files changed, 71 insertions(+), 9 deletions(-)
diff --git a/tests/generic/068 b/tests/generic/068
index 56262cd7..eeddf6d1 100755
--- a/tests/generic/068
+++ b/tests/generic/068
@@ -17,9 +17,12 @@ ITERATIONS=10
# Override the default cleanup function.
_cleanup()
{
- cd /
-
- trap 0 1 2 3 15
+ # Make sure $SCRATCH_MNT is unfreezed
+ xfs_freeze -u $SCRATCH_MNT 2>/dev/null
+ [ -n "$pid" ] && kill -9 $pid 2>/dev/null
+ wait $pid
+ cd /
+ rm -f $tmp.*
}
# Import common functions.
@@ -60,6 +63,7 @@ touch $tmp.running
rm -r $STRESS_DIR/*
rmdir $STRESS_DIR
} &
+pid=$!
# start fstest -m loop in a background block; this gets us mmap coverage
{
@@ -75,6 +79,7 @@ touch $tmp.running
rm -rf $FSTEST_DIR/*
rmdir $FSTEST_DIR
} &
+pid="$pid $!"
i=0
let ITERATIONS=$ITERATIONS-1
@@ -103,6 +108,7 @@ done
rm $tmp.running
# wait for fsstresses to finish
-wait
+wait $pid
+unset pid
exit 1
diff --git a/tests/generic/085 b/tests/generic/085
index 20cf875a..786d8e6f 100755
--- a/tests/generic/085
+++ b/tests/generic/085
@@ -25,6 +25,8 @@ cleanup_dmdev()
{
# in case it's still suspended and/or mounted
$DMSETUP_PROG resume $lvdev >/dev/null 2>&1
+ [ -n "$pid" ] && kill -9 $pid 2>/dev/null
+ wait $pid
$UMOUNT_PROG $lvdev >/dev/null 2>&1
_dmsetup_remove $node
}
@@ -75,6 +77,7 @@ done &
pid="$pid $!"
wait $pid
+unset pid
status=0
exit
diff --git a/tests/generic/280 b/tests/generic/280
index 07144555..8e1ae4d2 100755
--- a/tests/generic/280
+++ b/tests/generic/280
@@ -10,6 +10,17 @@
. ./common/preamble
_begin_fstest auto quota freeze
+# Override the default cleanup function.
+_cleanup()
+{
+ # Make sure $SCRATCH_MNT is unfreezed
+ xfs_freeze -u $SCRATCH_MNT 2>/dev/null
+ [ -n "$pid" ] && kill -9 $pid 2>/dev/null
+ wait $pid
+ cd /
+ rm -f $tmp.*
+}
+
# Import common functions.
. ./common/filter
. ./common/quota
@@ -34,7 +45,7 @@ pid=$!
sleep 1
xfs_freeze -u $SCRATCH_MNT
wait $pid
-_scratch_unmount
+unset pid
# Failure comes in the form of a deadlock.
diff --git a/tests/generic/390 b/tests/generic/390
index 20c66e22..e8f6a5dc 100755
--- a/tests/generic/390
+++ b/tests/generic/390
@@ -14,8 +14,12 @@ _begin_fstest auto freeze stress
_cleanup()
{
cd /
- # Make sure $SCRATCH_MNT is unfreezed
+ # Kill freeze loops and make sure $SCRATCH_MNT is unfreezed
+ [ -n "$freeze_pids" ] && kill -9 $freeze_pids 2>/dev/null
+ wait $freeze_pids
xfs_freeze -u $SCRATCH_MNT 2>/dev/null
+ [ -n "$fsstress_pid" ] && kill -9 $fsstress_pid 2>/dev/null
+ wait $fsstress_pid
rm -f $tmp.*
}
@@ -62,7 +66,9 @@ done
wait $fsstress_pid
result=$?
+unset fsstress_pid
wait $freeze_pids
+unset freeze_pids
# Exit with fsstress return value
status=$result
diff --git a/tests/generic/459 b/tests/generic/459
index 57d58e55..7be39089 100755
--- a/tests/generic/459
+++ b/tests/generic/459
@@ -24,6 +24,8 @@ _begin_fstest auto freeze thin
# Override the default cleanup function.
_cleanup()
{
+ # Make sure $SCRATCH_MNT is unfreezed
+ xfs_freeze -u $SCRATCH_MNT 2>/dev/null
cd /
rm -f $tmp.*
$UMOUNT_PROG $SCRATCH_MNT >>$seqres.full 2>&1
diff --git a/tests/generic/491 b/tests/generic/491
index e6e57dcd..797b08d5 100755
--- a/tests/generic/491
+++ b/tests/generic/491
@@ -12,6 +12,15 @@
. ./common/preamble
_begin_fstest auto quick freeze mount
+# Override the default cleanup function.
+_cleanup()
+{
+ cd /
+ # Make sure $SCRATCH_MNT is unfreezed
+ xfs_freeze -u $SCRATCH_MNT 2>/dev/null
+ rm -f $tmp.*
+}
+
# Import common functions.
. ./common/filter
diff --git a/tests/xfs/011 b/tests/xfs/011
index d6e9099e..ed44d074 100755
--- a/tests/xfs/011
+++ b/tests/xfs/011
@@ -16,10 +16,11 @@ _begin_fstest auto freeze log metadata quick
# Override the default cleanup function.
_cleanup()
{
+ # Make sure $SCRATCH_MNT is unfreezed
+ xfs_freeze -u $SCRATCH_MNT 2>/dev/null
$KILLALL_PROG -9 fsstress 2>/dev/null
wait
cd /
- _scratch_unmount 2>/dev/null
rm -f $tmp.*
}
diff --git a/tests/xfs/119 b/tests/xfs/119
index b6f96601..5ffbce25 100755
--- a/tests/xfs/119
+++ b/tests/xfs/119
@@ -11,6 +11,15 @@
. ./common/preamble
_begin_fstest log v2log auto freeze
+# Override the default cleanup function.
+_cleanup()
+{
+ # Make sure $SCRATCH_MNT is unfreezed
+ xfs_freeze -u $SCRATCH_MNT 2>/dev/null
+ cd /
+ rm -f $tmp.*
+}
+
# Import common functions.
. ./common/filter
diff --git a/tests/xfs/297 b/tests/xfs/297
index ca482e06..07f84c25 100755
--- a/tests/xfs/297
+++ b/tests/xfs/297
@@ -11,6 +11,17 @@
. ./common/preamble
_begin_fstest auto freeze
+# Override the default cleanup function.
+_cleanup()
+{
+ # Make sure $SCRATCH_MNT is unfreezed
+ xfs_freeze -u $SCRATCH_MNT 2>/dev/null
+ $KILLALL_PROG -q -9 $FSSTRESS_PROG
+ wait
+ cd /
+ rm -f $tmp.*
+}
+
# Import common functions.
. ./common/filter
diff --git a/tests/xfs/318 b/tests/xfs/318
index be93f9ab..5798f9a3 100755
--- a/tests/xfs/318
+++ b/tests/xfs/318
@@ -12,8 +12,9 @@ _begin_fstest auto quick rw freeze
# Override the default cleanup function.
_cleanup()
{
+ # Make sure $SCRATCH_MNT is unfreezed
+ xfs_freeze -u $SCRATCH_MNT 2>/dev/null
cd /
- _scratch_unmount > /dev/null 2>&1
rm -rf $tmp.*
}
diff --git a/tests/xfs/325 b/tests/xfs/325
index c6861fbc..43fb09a6 100755
--- a/tests/xfs/325
+++ b/tests/xfs/325
@@ -13,8 +13,9 @@ _begin_fstest auto quick clone freeze
# Override the default cleanup function.
_cleanup()
{
+ # Make sure $SCRATCH_MNT is unfreezed
+ xfs_freeze -u $SCRATCH_MNT 2>/dev/null
cd /
- _scratch_unmount > /dev/null 2>&1
rm -rf $tmp.*
}
diff --git a/tests/xfs/438 b/tests/xfs/438
index cfe75bd8..0425c5b1 100755
--- a/tests/xfs/438
+++ b/tests/xfs/438
@@ -26,6 +26,8 @@ _begin_fstest auto quick quota freeze
# Override the default cleanup function.
_cleanup()
{
+ # Make sure $SCRATCH_MNT is unfreezed
+ xfs_freeze -u $SCRATCH_MNT 2>/dev/null
[ -z "${interval}" ] || \
sysctl -w fs.xfs.xfssyncd_centisecs=${interval} >/dev/null 2>&1
cd /
--
2.25.1
next prev parent reply other threads:[~2022-06-21 17:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-21 17:37 [PATCH v2 0/3] aborted fstests may leave frozen fs behind Amir Goldstein
2022-06-21 17:37 ` [PATCH v2 1/3] fstests: add missing _require_freeze() to tests Amir Goldstein
2022-06-24 15:26 ` Zorro Lang
2022-06-21 17:37 ` Amir Goldstein [this message]
2022-06-24 16:06 ` [PATCH v2 2/3] fstests: unfreeze fs on cleanup routines Zorro Lang
2022-06-21 17:37 ` [PATCH v2 3/3] xfs/{422,517}: kill background jobs on test termination Amir Goldstein
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220621173729.2135249-3-amir73il@gmail.com \
--to=amir73il@gmail.com \
--cc=darrick.wong@oracle.com \
--cc=david@fromorbit.com \
--cc=fstests@vger.kernel.org \
--cc=zlang@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.