public inbox for fstests@vger.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Zorro Lang <zlang@redhat.com>
Cc: fstests@vger.kernel.org
Subject: Re: [PATCH v2] generic/648: dmerror must be unmounted
Date: Tue, 9 Nov 2021 09:26:17 -0800	[thread overview]
Message-ID: <20211109172617.GL24282@magnolia> (raw)
In-Reply-To: <20211024120512.2383377-1-zlang@redhat.com>

On Sun, Oct 24, 2021 at 08:05:12PM +0800, 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.
> 
> Signed-off-by: Zorro Lang <zlang@redhat.com>

Looks good to me now,
Reviewed-by: Darrick J. Wong <djwong@kernel.org>

--D

> ---
> 
> 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
> -- 
> 2.31.1
> 

      parent reply	other threads:[~2021-11-09 17:26 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
2021-11-09  4:09 ` Zorro Lang
2021-11-14 10:44   ` Eryu Guan
2021-11-09 17:26 ` Darrick J. Wong [this message]

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=20211109172617.GL24282@magnolia \
    --to=djwong@kernel.org \
    --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