xfstests: btrfs/276 - stop all fsstress before exiting
diff mbox

Message ID 517A10B1.7040107@redhat.com
State Not Applicable
Headers show

Commit Message

Eric Sandeen April 26, 2013, 5:29 a.m. UTC
Tests after 276 were failing because the background fsstress
hadn't quit prior to exit, devices couldn't be unmounted, etc.

Just use the same trick as generic/068 does, and use
a tmpfile to control whether the background loop keeps
running.

Also, no need to umount scratch at cleanup time, the scripts
do that for us.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---

(nobody else ran into this?  really?)


--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Jan Schmidt April 26, 2013, 8:35 a.m. UTC | #1
On Fri, April 26, 2013 at 07:29 (+0200), Eric Sandeen wrote:
> Tests after 276 were failing because the background fsstress
> hadn't quit prior to exit, devices couldn't be unmounted, etc.

I don't see how that would happen. Any further insight?

> Just use the same trick as generic/068 does, and use
> a tmpfile to control whether the background loop keeps
> running.

I like that trick :-)

Thanks,
-Jan

> Also, no need to umount scratch at cleanup time, the scripts
> do that for us.
> 
> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
> ---
> 
> (nobody else ran into this?  really?)
> 
> diff --git a/tests/btrfs/276 b/tests/btrfs/276
> index 0a5ce36..9d68b54 100755
> --- a/tests/btrfs/276
> +++ b/tests/btrfs/276
> @@ -36,14 +36,8 @@ noise_pid=0
>  
>  _cleanup()
>  {
> -	if [ $noise_pid -ne 0 ]; then
> -		echo "background noise kill $noise_pid" >>$seqres.full
> -		kill $noise_pid
> -		noise_pid=0
> -		wait
> -	fi
> -	echo "*** unmount"
> -	umount $SCRATCH_MNT 2>/dev/null
> +	rm $tmp.running
> +	wait
>  	rm -f $tmp.*
>  }
>  trap "_cleanup; exit \$status" 0 1 2 3 15
> @@ -210,7 +204,7 @@ workout()
>  
>  	if [ $do_bg_noise -ne 0 ]; then
>  		# make background noise while backrefs are being walked
> -		while /bin/true; do
> +		while [ -f "$tmp.running" ]; do
>  			echo background fsstress >>$seqres.full
>  			run_check $FSSTRESS_PROG -d $SCRATCH_MNT/bgnoise -n 999
>  			echo background rm >>$seqres.full
> @@ -263,6 +257,8 @@ nfiles=4
>  numprocs=1
>  do_bg_noise=1
>  
> +touch $tmp.running
> +
>  workout $filesize $nfiles $numprocs $snap_name $do_bg_noise
>  
>  echo "*** done"
> diff --git a/tests/btrfs/276.out b/tests/btrfs/276.out
> index 2032dea..5113164 100644
> --- a/tests/btrfs/276.out
> +++ b/tests/btrfs/276.out
> @@ -1,4 +1,3 @@
>  QA output created by 276
>  *** test backref walking
>  *** done
> -*** unmount
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Eric Sandeen April 26, 2013, 1:10 p.m. UTC | #2
On Apr 26, 2013, at 3:35 AM, Jan Schmidt <list.btrfs@jan-o-sch.net> wrote:

> On Fri, April 26, 2013 at 07:29 (+0200), Eric Sandeen wrote:
>> Tests after 276 were failing because the background fsstress
>> hadn't quit prior to exit, devices couldn't be unmounted, etc.
> 
> I don't see how that would happen. Any further insight?
> 
Yes, sorry for not including it.  The parent process was killed, but the fsstress processes just got reparented to init.  

I tried for a while to use pkill to knock them of first but this seems simpler, actually.

Eric

>> Just use the same trick as generic/068 does, and use
>> a tmpfile to control whether the background loop keeps
>> running.
> 
> I like that trick :-)
> 
> Thanks,
> -Jan
> 
>> Also, no need to umount scratch at cleanup time, the scripts
>> do that for us.
>> 
>> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
>> ---
>> 
>> (nobody else ran into this?  really?)
>> 
>> diff --git a/tests/btrfs/276 b/tests/btrfs/276
>> index 0a5ce36..9d68b54 100755
>> --- a/tests/btrfs/276
>> +++ b/tests/btrfs/276
>> @@ -36,14 +36,8 @@ noise_pid=0
>> 
>> _cleanup()
>> {
>> -    if [ $noise_pid -ne 0 ]; then
>> -        echo "background noise kill $noise_pid" >>$seqres.full
>> -        kill $noise_pid
>> -        noise_pid=0
>> -        wait
>> -    fi
>> -    echo "*** unmount"
>> -    umount $SCRATCH_MNT 2>/dev/null
>> +    rm $tmp.running
>> +    wait
>>    rm -f $tmp.*
>> }
>> trap "_cleanup; exit \$status" 0 1 2 3 15
>> @@ -210,7 +204,7 @@ workout()
>> 
>>    if [ $do_bg_noise -ne 0 ]; then
>>        # make background noise while backrefs are being walked
>> -        while /bin/true; do
>> +        while [ -f "$tmp.running" ]; do
>>            echo background fsstress >>$seqres.full
>>            run_check $FSSTRESS_PROG -d $SCRATCH_MNT/bgnoise -n 999
>>            echo background rm >>$seqres.full
>> @@ -263,6 +257,8 @@ nfiles=4
>> numprocs=1
>> do_bg_noise=1
>> 
>> +touch $tmp.running
>> +
>> workout $filesize $nfiles $numprocs $snap_name $do_bg_noise
>> 
>> echo "*** done"
>> diff --git a/tests/btrfs/276.out b/tests/btrfs/276.out
>> index 2032dea..5113164 100644
>> --- a/tests/btrfs/276.out
>> +++ b/tests/btrfs/276.out
>> @@ -1,4 +1,3 @@
>> QA output created by 276
>> *** test backref walking
>> *** done
>> -*** unmount
>> 
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> 
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rich Johnston May 3, 2013, 1:06 p.m. UTC | #3
On 04/26/2013 08:10 AM, Eric Sandeen wrote:
> On Apr 26, 2013, at 3:35 AM, Jan Schmidt <list.btrfs@jan-o-sch.net> wrote:
>
>> On Fri, April 26, 2013 at 07:29 (+0200), Eric Sandeen wrote:
>>> Tests after 276 were failing because the background fsstress
>>> hadn't quit prior to exit, devices couldn't be unmounted, etc.
>>
>> I don't see how that would happen. Any further insight?
>>
> Yes, sorry for not including it.  The parent process was killed, but the fsstress processes just got reparented to init.
>
> I tried for a while to use pkill to knock them of first but this seems simpler, actually.
>
> Eric
>

Jan, with Eric's explanation, may I put your Reviewed-by: on this patch?

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rich Johnston May 3, 2013, 3:03 p.m. UTC | #4
Thanks for the patch Eric and the review Jan, this has been committed.

--Rich

commit 0b5677123b5d8c0a29b45f55c7b981aeeca9b2c8
Author: Eric Sandeen <sandeen@redhat.com>
Date:   Fri Apr 26 05:29:21 2013 +0000

     xfstests: btrfs/276 - stop all fsstress before exiting

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff --git a/tests/btrfs/276 b/tests/btrfs/276
index 0a5ce36..9d68b54 100755
--- a/tests/btrfs/276
+++ b/tests/btrfs/276
@@ -36,14 +36,8 @@  noise_pid=0
 
 _cleanup()
 {
-	if [ $noise_pid -ne 0 ]; then
-		echo "background noise kill $noise_pid" >>$seqres.full
-		kill $noise_pid
-		noise_pid=0
-		wait
-	fi
-	echo "*** unmount"
-	umount $SCRATCH_MNT 2>/dev/null
+	rm $tmp.running
+	wait
 	rm -f $tmp.*
 }
 trap "_cleanup; exit \$status" 0 1 2 3 15
@@ -210,7 +204,7 @@  workout()
 
 	if [ $do_bg_noise -ne 0 ]; then
 		# make background noise while backrefs are being walked
-		while /bin/true; do
+		while [ -f "$tmp.running" ]; do
 			echo background fsstress >>$seqres.full
 			run_check $FSSTRESS_PROG -d $SCRATCH_MNT/bgnoise -n 999
 			echo background rm >>$seqres.full
@@ -263,6 +257,8 @@  nfiles=4
 numprocs=1
 do_bg_noise=1
 
+touch $tmp.running
+
 workout $filesize $nfiles $numprocs $snap_name $do_bg_noise
 
 echo "*** done"
diff --git a/tests/btrfs/276.out b/tests/btrfs/276.out
index 2032dea..5113164 100644
--- a/tests/btrfs/276.out
+++ b/tests/btrfs/276.out
@@ -1,4 +1,3 @@ 
 QA output created by 276
 *** test backref walking
 *** done
-*** unmount