diff mbox

xfstests 276: fix error 'FIBMAP: Invalid argument'

Message ID 512DB284.1090806@gmail.com
State Not Applicable
Headers show

Commit Message

Wang Sheng-Hui Feb. 27, 2013, 7:15 a.m. UTC
Btrfs doesn't support FIEMAP_FLAG_XATTR, which is enabled by
-x option of filefrag, and will fail with
	'FIBMAP: Invalid argument'
for 'filefrag -vx'. 'filefrag -vx' fails on btrfs with
     'FIEMAP failed with unsupported flags 2'
Remove the '-x' option.

Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com>
---
  276 |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Dave Chinner Feb. 27, 2013, 11:04 p.m. UTC | #1
On Wed, Feb 27, 2013 at 03:15:16PM +0800, Wang Sheng-Hui wrote:
> Btrfs doesn't support FIEMAP_FLAG_XATTR, which is enabled by
> -x option of filefrag, and will fail with
> 	'FIBMAP: Invalid argument'
> for 'filefrag -vx'. 'filefrag -vx' fails on btrfs with
>     'FIEMAP failed with unsupported flags 2'
> Remove the '-x' option.
> 
> Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com>

I can see that this changes what gets dumped into the $seq.full
file, but it seems to me that also changes the extent list returned
to the checking functions. So either the test previously worked and
now it fails with this change, or the test never worked and now it
does, or perhaps something else?

IOWs, I can't tell why you want to change this from the patch
description, hence I don't know if the original behaviour was
intentional or not.  Can you say describe what the overall effect of
the change is in the commit description?

Cheers,

Dave.
Eric Sandeen Feb. 27, 2013, 11:11 p.m. UTC | #2
On 2/27/13 5:04 PM, Dave Chinner wrote:
> On Wed, Feb 27, 2013 at 03:15:16PM +0800, Wang Sheng-Hui wrote:
>> Btrfs doesn't support FIEMAP_FLAG_XATTR, which is enabled by
>> -x option of filefrag, and will fail with
>> 	'FIBMAP: Invalid argument'
>> for 'filefrag -vx'. 'filefrag -vx' fails on btrfs with
>>     'FIEMAP failed with unsupported flags 2'
>> Remove the '-x' option.
>>
>> Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com>
> 
> I can see that this changes what gets dumped into the $seq.full
> file, but it seems to me that also changes the extent list returned
> to the checking functions. So either the test previously worked and
> now it fails with this change, or the test never worked and now it
> does, or perhaps something else?

Agreed - I wondered as well.

> IOWs, I can't tell why you want to change this from the patch
> description, hence I don't know if the original behaviour was
> intentional or not.  Can you say describe what the overall effect of
> the change is in the commit description?

It looks like -x is only recently rejected:

commit 05dadc09f52ad5a631da1aa8767c5b80e121f0c4
Author: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Date:   Thu Nov 29 05:08:26 2012 +0000

    Btrfs: add fiemap's flag check

+#define BTRFS_FIEMAP_FLAGS     (FIEMAP_FLAG_SYNC)

+       ret = fiemap_check_flags(fieinfo, BTRFS_FIEMAP_FLAGS);

-Eric

> Cheers,
> 
> Dave.
> 

--
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
Wang Sheng-Hui Feb. 28, 2013, 12:02 a.m. UTC | #3
On 2013?02?28? 07:04, Dave Chinner wrote:
> On Wed, Feb 27, 2013 at 03:15:16PM +0800, Wang Sheng-Hui wrote:
>> Btrfs doesn't support FIEMAP_FLAG_XATTR, which is enabled by
>> -x option of filefrag, and will fail with
>> 	'FIBMAP: Invalid argument'
>> for 'filefrag -vx'. 'filefrag -vx' fails on btrfs with
>>      'FIEMAP failed with unsupported flags 2'
>> Remove the '-x' option.
>>
>> Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com>
>
> I can see that this changes what gets dumped into the $seq.full
> file, but it seems to me that also changes the extent list returned
> to the checking functions. So either the test previously worked and
> now it fails with this change, or the test never worked and now it
> does, or perhaps something else?
>
> IOWs, I can't tell why you want to change this from the patch
> description, hence I don't know if the original behaviour was
> intentional or not.  Can you say describe what the overall effect of
> the change is in the commit description?

Hi Dave,

I run xfstests for btrfs against SLES11SP2, not upstream kernel.
In the seq.full, I can get the messages
	'FIEMAP failed with unsupported flags 2'

Then I found that the test will run 'filefrag -vx' on btrfs, and
'-v' will run FIEMAP_FLAG_XATTR, which is not supported by btrfs
yet, at least in 3.8 kernel.

Without the patch, I failed the testcase and got:
=============================================
276 8s ... - output mismatch (see 276.out.bad)
     --- 276.out	2013-02-25 19:08:58.000000000 -0600
     +++ 276.out.bad	2013-02-27 17:59:48.000000000 -0600
     @@ -1,4 +1,867 @@
      QA output created by 276
      *** test backref walking
     +FIBMAP: Invalid argument
     +FIBMAP: Invalid argument
     +FIBMAP: Invalid argument
     +FIBMAP: Invalid argument
     +FIBMAP: Invalid argument
      ...
      (Run 'diff -u 276.out 276.out.bad' to see the entire diff)
Ran: 276
Failures: 276
Failed 1 of 1 tests

In the 276.full, I got something like:
=============================================
# filefrag -vx /mnt/scratch/snap1/p0/d4/d21/d4a/f58
Filesystem type is: 9123683e
File size of /mnt/scratch/snap1/p0/d4/d21/d4a/f58 is 2125615 (33 blocks, blocksize 65536)
FIEMAP failed with unsupported flags 2


With the patch, I can pass the testcase:
=============================================
276 8s ... 7s
Ran: 276
Passed all 1 tests


>
> Cheers,
>
> Dave.
>

--
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
Dave Chinner Feb. 28, 2013, 12:25 a.m. UTC | #4
On Thu, Feb 28, 2013 at 08:02:52AM +0800, Wang Sheng-Hui wrote:
> On 2013?02?28? 07:04, Dave Chinner wrote:
> >On Wed, Feb 27, 2013 at 03:15:16PM +0800, Wang Sheng-Hui wrote:
> >>Btrfs doesn't support FIEMAP_FLAG_XATTR, which is enabled by
> >>-x option of filefrag, and will fail with
> >>	'FIBMAP: Invalid argument'
> >>for 'filefrag -vx'. 'filefrag -vx' fails on btrfs with
> >>     'FIEMAP failed with unsupported flags 2'
> >>Remove the '-x' option.
> >>
> >>Signed-off-by: Wang Sheng-Hui <shhuiw@gmail.com>
> >
> >I can see that this changes what gets dumped into the $seq.full
> >file, but it seems to me that also changes the extent list returned
> >to the checking functions. So either the test previously worked and
> >now it fails with this change, or the test never worked and now it
> >does, or perhaps something else?
> >
> >IOWs, I can't tell why you want to change this from the patch
> >description, hence I don't know if the original behaviour was
> >intentional or not.  Can you say describe what the overall effect of
> >the change is in the commit description?
> 
> Hi Dave,
> 
> I run xfstests for btrfs against SLES11SP2, not upstream kernel.
> In the seq.full, I can get the messages
> 	'FIEMAP failed with unsupported flags 2'
> 
> Then I found that the test will run 'filefrag -vx' on btrfs, and
> '-v' will run FIEMAP_FLAG_XATTR, which is not supported by btrfs
> yet, at least in 3.8 kernel.

Sure, I understand that. I'm not asking about how it fails - that
much is obvious. What I am asking is:

	- did it ever work?
	- if it did, why did it start failing?
	- how long has it been broken for?

> With the patch, I can pass the testcase:
> =============================================
> 276 8s ... 7s
> Ran: 276
> Passed all 1 tests

Great, but why did it break in the first place? That's the
information that needs to be in the commit message. Indeed, Eric has
pointed out to us *exactly* the information that shoul dbe in the
commit message. i.e. a description along the lines of:

"Commit 05dadc0 ("Btrfs: add fiemap's flag check") added validity
checks to the fiemap flags and hence invalid flags are now being
rejected. Test 276 passes an invalid fiemap flag to btrfs, and so
that test fails since this commit was added."

That tells us exactly why the test failed, why the change is
necessary, and how long the test has been broken for. Seen another
way, it makes me wonder how often anyone runs xfstests on a btrfs
dev tree or regression tests their own changes.

Cheers,

Dave.
Rich Johnston March 5, 2013, 6:43 p.m. UTC | #5
This patch has been committed.

--Rich

commit eba3a5206cd7f8df73d6e6dbf2bb0afca677fca8
Author: Wang Sheng-Hui <shhuiw@gmail.com>
Date:   Thu Feb 28 02:05:56 2013 +0000

     xfstests 276: fix error 'FIBMAP: Invalid argument'

     Commit 05dadc0 ("Btrfs: add fiemap's flag check") added validity
     checks to the fiemap flags and hence invalid flags are now being
     rejected. Test 276 passes an invalid fiemap flag to btrfs, and so
     that test fails since this commit was added.

     Btrfs doesn't support FIEMAP_FLAG_XATTR, which is enabled by -x option
     of filefrag, and will fail with
         'FIBMAP: Invalid argument'
     for 'filefrag -vx'. 'filefrag -vx' fails on btrfs with
          'FIEMAP failed with unsupported flags 2'
     Remove the '-x' option.

--
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
Zhiyong Wu May 26, 2013, 9:35 a.m. UTC | #6
HI,

  This issue still exists when xfstests is run on debian although
xfstests has contained this patch.

root@debian-i386:/home/zwu/xfstests# git describe
linux-v3.8-122-gdc75401
root@debian-i386:/home/zwu/xfstests# uname -a
Linux debian-i386 3.10.0-rc2+ #3 SMP Sun May 26 14:04:13 CST 2013
x86_64 GNU/Linux
root@debian-i386:/home/zwu/xfstests#

 - output mismatch (see /home/zwu/xfstests/results/btrfs/276.out.bad)
    --- tests/btrfs/276.out    2013-05-25 15:09:01.000000000 +0000
    +++ /home/zwu/xfstests/results/btrfs/276.out.bad    2013-05-26
09:31:49.962876905 +0000
    @@ -1,3 +1,32393 @@
     QA output created by 276
     *** test backref walking
    +FIBMAP: Invalid argument
    +FIBMAP: Invalid argument
    +FIBMAP: Invalid argument
    +FIBMAP: Invalid argument
    +FIBMAP: Invalid argument
     ...
     (Run 'diff -u tests/btrfs/276.out
/home/zwu/xfstests/results/btrfs/276.out.bad' to see the entire diff)
[ 3877.215268] device fsid 8367602a-14fa-49eb-aff0-44da1faa3b45 devid
1 transid 239 /dev/vdb
[ 3877.218417] btrfs: disk space caching is enabled
Ran: btrfs/276
Failures: btrfs/276
Failed 1 of 1 tests

On Wed, Mar 6, 2013 at 2:43 AM, Rich Johnston <rjohnston@sgi.com> wrote:
> This patch has been committed.
>
> --Rich
>
> commit eba3a5206cd7f8df73d6e6dbf2bb0afca677fca8
> Author: Wang Sheng-Hui <shhuiw@gmail.com>
> Date:   Thu Feb 28 02:05:56 2013 +0000
>
>     xfstests 276: fix error 'FIBMAP: Invalid argument'
>
>
>     Commit 05dadc0 ("Btrfs: add fiemap's flag check") added validity
>     checks to the fiemap flags and hence invalid flags are now being
>     rejected. Test 276 passes an invalid fiemap flag to btrfs, and so
>     that test fails since this commit was added.
>
>     Btrfs doesn't support FIEMAP_FLAG_XATTR, which is enabled by -x option
>     of filefrag, and will fail with
>         'FIBMAP: Invalid argument'
>     for 'filefrag -vx'. 'filefrag -vx' fails on btrfs with
>          'FIEMAP failed with unsupported flags 2'
>     Remove the '-x' option.
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
Eric Sandeen May 26, 2013, 5:35 p.m. UTC | #7
On 5/26/13 4:35 AM, Zhi Yong Wu wrote:
> HI,
> 
>   This issue still exists when xfstests is run on debian although
> xfstests has contained this patch.

"this issue" must be different, then; same error ("Invalid argument")
but it can no longer be due to the -x option to filefrag.  There
must be some other root cause.

Needs investigation on the btrfs side.  IOWs, this looks like
it could be a regression in btrfs?

-Eric

> root@debian-i386:/home/zwu/xfstests# git describe
> linux-v3.8-122-gdc75401
> root@debian-i386:/home/zwu/xfstests# uname -a
> Linux debian-i386 3.10.0-rc2+ #3 SMP Sun May 26 14:04:13 CST 2013
> x86_64 GNU/Linux
> root@debian-i386:/home/zwu/xfstests#
> 
>  - output mismatch (see /home/zwu/xfstests/results/btrfs/276.out.bad)
>     --- tests/btrfs/276.out    2013-05-25 15:09:01.000000000 +0000
>     +++ /home/zwu/xfstests/results/btrfs/276.out.bad    2013-05-26
> 09:31:49.962876905 +0000
>     @@ -1,3 +1,32393 @@
>      QA output created by 276
>      *** test backref walking
>     +FIBMAP: Invalid argument
>     +FIBMAP: Invalid argument
>     +FIBMAP: Invalid argument
>     +FIBMAP: Invalid argument
>     +FIBMAP: Invalid argument
>      ...
>      (Run 'diff -u tests/btrfs/276.out
> /home/zwu/xfstests/results/btrfs/276.out.bad' to see the entire diff)
> [ 3877.215268] device fsid 8367602a-14fa-49eb-aff0-44da1faa3b45 devid
> 1 transid 239 /dev/vdb
> [ 3877.218417] btrfs: disk space caching is enabled
> Ran: btrfs/276
> Failures: btrfs/276
> Failed 1 of 1 tests
> 
> On Wed, Mar 6, 2013 at 2:43 AM, Rich Johnston <rjohnston@sgi.com> wrote:
>> This patch has been committed.
>>
>> --Rich
>>
>> commit eba3a5206cd7f8df73d6e6dbf2bb0afca677fca8
>> Author: Wang Sheng-Hui <shhuiw@gmail.com>
>> Date:   Thu Feb 28 02:05:56 2013 +0000
>>
>>     xfstests 276: fix error 'FIBMAP: Invalid argument'
>>
>>
>>     Commit 05dadc0 ("Btrfs: add fiemap's flag check") added validity
>>     checks to the fiemap flags and hence invalid flags are now being
>>     rejected. Test 276 passes an invalid fiemap flag to btrfs, and so
>>     that test fails since this commit was added.
>>
>>     Btrfs doesn't support FIEMAP_FLAG_XATTR, which is enabled by -x option
>>     of filefrag, and will fail with
>>         'FIBMAP: Invalid argument'
>>     for 'filefrag -vx'. 'filefrag -vx' fails on btrfs with
>>          'FIEMAP failed with unsupported flags 2'
>>     Remove the '-x' option.
>>
>> _______________________________________________
>> xfs mailing list
>> xfs@oss.sgi.com
>> http://oss.sgi.com/mailman/listinfo/xfs
> 
> 
> 

--
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
diff mbox

Patch

diff --git a/276 b/276
index 082f943..f2b17c9 100755
--- a/276
+++ b/276
@@ -75,7 +75,7 @@  _filter_extents()

  _check_file_extents()
  {
-	cmd="filefrag -vx $1"
+	cmd="filefrag -v $1"
  	echo "# $cmd" >> $seq.full
  	out=`$cmd | _filter_extents`
  	if [ -z "$out" ]; then