public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
From: "xuyang2018.jy@fujitsu.com" <xuyang2018.jy@fujitsu.com>
To: Zorro Lang <zlang@redhat.com>
Cc: "fstests@vger.kernel.org" <fstests@vger.kernel.org>
Subject: Re: [PATCH v2] generic/648: dmerror must be unmounted
Date: Tue, 9 Nov 2021 03:59:37 +0000	[thread overview]
Message-ID: <6189F246.4080009@fujitsu.com> (raw)
In-Reply-To: <20211024120512.2383377-1-zlang@redhat.com>

on 2021/10/24 20:05, Zorro Lang wrote:
> Sometimes g/648 fail to unmount dmerror with this error:
> 
>     umount: /mnt/xfstests/scratch: target is busy.
> 
> Even worse, it will cause all later test cases fail as:
> 
>    mount: bad usage
>    Try 'mount --help' for more information.
>    check: failed to mount $SCRATCH_DEV using specified options
>    Interrupted!
> 
> So we shouldn't _fail directly if dmerror_unmount fails, use a while
> loop to try to unmount it enough times.
I also met EBUSY error when testing other cases(I need to filter about
60 cases for this reason and do signle test for them) that using dmerror
or dmflakey.

Can we add a umount_api for dmerror/dmflakey that use a while loop to
umount during enough time in xfstest layer?

Best Regards
Yang Xu
> 
> Signed-off-by: Zorro Lang<zlang@redhat.com>
> ---
> 
> As Darrick's review point, V2 brings the "iteration XXX scratch
> unmount failed" _fail back.
> 
> Thanks,
> Zorro
> 
>   tests/generic/648 | 18 ++++++++++++++++--
>   1 file changed, 16 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/generic/648 b/tests/generic/648
> index 83dd111d..e5c743c5 100755
> --- a/tests/generic/648
> +++ b/tests/generic/648
> @@ -104,7 +104,7 @@ for i in $(seq 1 $((25 * TIME_FACTOR)) ); do
>   		wait>  /dev/null 2>&1
>   		ps -e | grep fsstress>  /dev/null 2>&1
>   	done
> -	for ((i = 0; i<  10; i++)); do
> +	for ((j = 0; j<  10; j++)); do
>   		test -e "$snap_aliveflag" || break
>   		sleep 1
>   	done
> @@ -112,7 +112,21 @@ for i in $(seq 1 $((25 * TIME_FACTOR)) ); do
>   	# Mount again to replay log after loading working table, so we have a
>   	# consistent fs after test.
>   	$UMOUNT_PROG $loopmnt
> -	_dmerror_unmount || _fail "iteration $i scratch unmount failed"
> +	is_unmounted=1
> +	# We must unmount dmerror at here, or whole later testing will crash.
> +	# So try to umount enough times, before we have no choice.
> +	for ((j = 0; j<  100; j++)); do
> +		sleep 1
> +		_dmerror_unmount>  $tmp.unmount.err 2>&1
> +		if [ $? -eq 0 ];then
> +			is_unmounted=0
> +			break
> +		fi
> +	done
> +	if [ $is_unmounted -ne 0 ];then
> +		cat $tmp.unmount.err
> +		_fail "iteration $i scratch unmount failed"
> +	fi
>   	_dmerror_load_working_table
>   	if ! _dmerror_mount; then
>   		_metadump_dev $DMERROR_DEV $seqres.scratch.$i.md

  reply	other threads:[~2021-11-09  4:06 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-24 12:05 [PATCH v2] generic/648: dmerror must be unmounted Zorro Lang
2021-11-09  3:59 ` xuyang2018.jy [this message]
2021-11-09  4:09 ` Zorro Lang
2021-11-14 10:44   ` Eryu Guan
2021-11-09 17:26 ` Darrick J. Wong

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=6189F246.4080009@fujitsu.com \
    --to=xuyang2018.jy@fujitsu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox