All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 0/2] check for dedupe and security namespace support
@ 2022-03-17 10:08 bxue
  2022-03-17 10:08 ` [PATCH v1 1/2] generic/674: check for dedupe support on scratch fs bxue
  2022-03-17 10:08 ` [PATCH v1 2/2] generic/513,675: check for security namespace support bxue
  0 siblings, 2 replies; 8+ messages in thread
From: bxue @ 2022-03-17 10:08 UTC (permalink / raw)
  To: fstests; +Cc: Boyang Xue

From: Boyang Xue <bxue@redhat.com>

Hi,

Some filesystems don't support dedupe and security namespace, we should
check for the support before running the test. I found this problem by
running these tests on our downstream NFS.

Please help review this fix.

Thanks,
Boyang

Boyang Xue (2):
  generic/674: check for dedupe support on scratch fs
  generic/513,675: check for security namespace support

 tests/generic/513 | 2 ++
 tests/generic/674 | 1 +
 tests/generic/675 | 2 ++
 3 files changed, 5 insertions(+)

-- 
2.27.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v1 1/2] generic/674: check for dedupe support on scratch fs
  2022-03-17 10:08 [PATCH v1 0/2] check for dedupe and security namespace support bxue
@ 2022-03-17 10:08 ` bxue
  2022-03-17 15:11   ` Darrick J. Wong
  2022-03-17 10:08 ` [PATCH v1 2/2] generic/513,675: check for security namespace support bxue
  1 sibling, 1 reply; 8+ messages in thread
From: bxue @ 2022-03-17 10:08 UTC (permalink / raw)
  To: fstests; +Cc: Boyang Xue

From: Boyang Xue <bxue@redhat.com>

Signed-off-by: Boyang Xue <bxue@redhat.com>
---
 tests/generic/674 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/generic/674 b/tests/generic/674
index bf0bcffb..7e5e4e29 100755
--- a/tests/generic/674
+++ b/tests/generic/674
@@ -19,6 +19,7 @@ _begin_fstest auto clone quick
 _supported_fs generic
 _require_user
 _require_scratch_reflink
+_require_scratch_dedupe
 _require_xfs_io_command dedupe
 
 _scratch_mkfs >> $seqres.full
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v1 2/2] generic/513,675: check for security namespace support
  2022-03-17 10:08 [PATCH v1 0/2] check for dedupe and security namespace support bxue
  2022-03-17 10:08 ` [PATCH v1 1/2] generic/674: check for dedupe support on scratch fs bxue
@ 2022-03-17 10:08 ` bxue
  2022-03-17 15:30   ` Darrick J. Wong
  1 sibling, 1 reply; 8+ messages in thread
From: bxue @ 2022-03-17 10:08 UTC (permalink / raw)
  To: fstests; +Cc: Boyang Xue

From: Boyang Xue <bxue@redhat.com>

Signed-off-by: Boyang Xue <bxue@redhat.com>
---
 tests/generic/513 | 2 ++
 tests/generic/675 | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/tests/generic/513 b/tests/generic/513
index dc082787..6e897fa0 100755
--- a/tests/generic/513
+++ b/tests/generic/513
@@ -12,10 +12,12 @@ _begin_fstest auto quick clone
 # Import common functions.
 . ./common/filter
 . ./common/reflink
+. ./common/attr
 
 # real QA test starts here
 _supported_fs generic
 _require_scratch_reflink
+_require_attrs security
 _require_command "$GETCAP_PROG" getcap
 _require_command "$SETCAP_PROG" setcap
 
diff --git a/tests/generic/675 b/tests/generic/675
index 23b7e545..311860dc 100755
--- a/tests/generic/675
+++ b/tests/generic/675
@@ -12,12 +12,14 @@ _begin_fstest auto clone quick
 # Import common functions.
 . ./common/filter
 . ./common/reflink
+. ./common/attr
 
 # real QA test starts here
 
 # Modify as appropriate.
 _supported_fs generic
 _require_user
+_require_attrs security
 _require_command "$GETCAP_PROG" getcap
 _require_command "$SETCAP_PROG" setcap
 _require_scratch_reflink
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 1/2] generic/674: check for dedupe support on scratch fs
  2022-03-17 10:08 ` [PATCH v1 1/2] generic/674: check for dedupe support on scratch fs bxue
@ 2022-03-17 15:11   ` Darrick J. Wong
  2022-03-17 16:32     ` Boyang Xue
  0 siblings, 1 reply; 8+ messages in thread
From: Darrick J. Wong @ 2022-03-17 15:11 UTC (permalink / raw)
  To: bxue; +Cc: fstests

On Thu, Mar 17, 2022 at 06:08:41PM +0800, bxue@redhat.com wrote:
> From: Boyang Xue <bxue@redhat.com>
> 
> Signed-off-by: Boyang Xue <bxue@redhat.com>
> ---
>  tests/generic/674 | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/tests/generic/674 b/tests/generic/674
> index bf0bcffb..7e5e4e29 100755
> --- a/tests/generic/674
> +++ b/tests/generic/674
> @@ -19,6 +19,7 @@ _begin_fstest auto clone quick
>  _supported_fs generic
>  _require_user
>  _require_scratch_reflink
> +_require_scratch_dedupe

I think you could replace the _require_scratch_reflink with
_require_scratch_dedupe here, right?  I probably copypasta'd this.

--D

>  _require_xfs_io_command dedupe
>  
>  _scratch_mkfs >> $seqres.full
> -- 
> 2.27.0
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 2/2] generic/513,675: check for security namespace support
  2022-03-17 10:08 ` [PATCH v1 2/2] generic/513,675: check for security namespace support bxue
@ 2022-03-17 15:30   ` Darrick J. Wong
  2022-03-17 16:31     ` Boyang Xue
  2022-03-23  2:38     ` Zorro Lang
  0 siblings, 2 replies; 8+ messages in thread
From: Darrick J. Wong @ 2022-03-17 15:30 UTC (permalink / raw)
  To: bxue; +Cc: fstests

On Thu, Mar 17, 2022 at 06:08:42PM +0800, bxue@redhat.com wrote:
> From: Boyang Xue <bxue@redhat.com>
> 

Er... what does this patch do, and why?

--D

> Signed-off-by: Boyang Xue <bxue@redhat.com>
> ---
>  tests/generic/513 | 2 ++
>  tests/generic/675 | 2 ++
>  2 files changed, 4 insertions(+)
> 
> diff --git a/tests/generic/513 b/tests/generic/513
> index dc082787..6e897fa0 100755
> --- a/tests/generic/513
> +++ b/tests/generic/513
> @@ -12,10 +12,12 @@ _begin_fstest auto quick clone
>  # Import common functions.
>  . ./common/filter
>  . ./common/reflink
> +. ./common/attr
>  
>  # real QA test starts here
>  _supported_fs generic
>  _require_scratch_reflink
> +_require_attrs security
>  _require_command "$GETCAP_PROG" getcap
>  _require_command "$SETCAP_PROG" setcap
>  
> diff --git a/tests/generic/675 b/tests/generic/675
> index 23b7e545..311860dc 100755
> --- a/tests/generic/675
> +++ b/tests/generic/675
> @@ -12,12 +12,14 @@ _begin_fstest auto clone quick
>  # Import common functions.
>  . ./common/filter
>  . ./common/reflink
> +. ./common/attr
>  
>  # real QA test starts here
>  
>  # Modify as appropriate.
>  _supported_fs generic
>  _require_user
> +_require_attrs security
>  _require_command "$GETCAP_PROG" getcap
>  _require_command "$SETCAP_PROG" setcap
>  _require_scratch_reflink
> -- 
> 2.27.0
> 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 2/2] generic/513,675: check for security namespace support
  2022-03-17 15:30   ` Darrick J. Wong
@ 2022-03-17 16:31     ` Boyang Xue
  2022-03-23  2:38     ` Zorro Lang
  1 sibling, 0 replies; 8+ messages in thread
From: Boyang Xue @ 2022-03-17 16:31 UTC (permalink / raw)
  To: Darrick J. Wong; +Cc: fstests

(Resend due to previous email being rejected. Sorry)

Hi Darrick,

I find the problem when I run xfstests generic/513,675 on nfs

```
FSTYP         -- nfs
PLATFORM      -- Linux/x86_64 kvm103 5.14.0-71.el9.x86_64 #1 SMP
PREEMPT Tue Mar 8 17:49:53 EST 2022
MKFS_OPTIONS  -- localhost:/scratch_TMP
MOUNT_OPTIONS -- -o vers=4.2 -o context=system_u:object_r:root_t:s0
localhost:/scratch_TMP /scratch

generic/513     - output mismatch (see
/root/repo_xfstests/results//generic/513.out.bad)
    --- tests/generic/513.out   2022-03-09 05:26:45.450331405 -0500
    +++ /root/repo_xfstests/results//generic/513.out.bad
2022-03-17 09:34:17.190818281 -0400
    @@ -1,2 +1,18 @@
     QA output created by 513
    +Failed to set capabilities on file '/scratch/bar' (Operation not supported)
```

So nfs doesn't support capabilities, I think we should run a check and
not run the test on filesystems like nfs that don't support it.
I find the file capabilities are implemented by using "security
attribute namespace", and running "_require_attrs security" can do the
check.
After applying this patch, running generic/513, 675 on nfs will be like

```
FSTYP         -- nfs
PLATFORM      -- Linux/x86_64 kvm103 5.14.0-71.el9.x86_64 #1 SMP
PREEMPT Tue Mar 8 17:49:53 EST 2022
MKFS_OPTIONS  -- localhost:/scratch_TMP
MOUNT_OPTIONS -- -o vers=4.2 -o context=system_u:object_r:root_t:s0
localhost:/scratch_TMP /scratch

generic/513     [not run] attr namespace security not supported by
this filesystem type: nfs
generic/675     [not run] attr namespace security not supported by
this filesystem type: nfs
Ran: generic/513 generic/675
Not run: generic/513 generic/675
Passed all 2 tests
```

Thanks,
Boyang


On Thu, Mar 17, 2022 at 11:30 PM Darrick J. Wong <djwong@kernel.org> wrote:
>
> On Thu, Mar 17, 2022 at 06:08:42PM +0800, bxue@redhat.com wrote:
> > From: Boyang Xue <bxue@redhat.com>
> >
>
> Er... what does this patch do, and why?
>
> --D
>
> > Signed-off-by: Boyang Xue <bxue@redhat.com>
> > ---
> >  tests/generic/513 | 2 ++
> >  tests/generic/675 | 2 ++
> >  2 files changed, 4 insertions(+)
> >
> > diff --git a/tests/generic/513 b/tests/generic/513
> > index dc082787..6e897fa0 100755
> > --- a/tests/generic/513
> > +++ b/tests/generic/513
> > @@ -12,10 +12,12 @@ _begin_fstest auto quick clone
> >  # Import common functions.
> >  . ./common/filter
> >  . ./common/reflink
> > +. ./common/attr
> >
> >  # real QA test starts here
> >  _supported_fs generic
> >  _require_scratch_reflink
> > +_require_attrs security
> >  _require_command "$GETCAP_PROG" getcap
> >  _require_command "$SETCAP_PROG" setcap
> >
> > diff --git a/tests/generic/675 b/tests/generic/675
> > index 23b7e545..311860dc 100755
> > --- a/tests/generic/675
> > +++ b/tests/generic/675
> > @@ -12,12 +12,14 @@ _begin_fstest auto clone quick
> >  # Import common functions.
> >  . ./common/filter
> >  . ./common/reflink
> > +. ./common/attr
> >
> >  # real QA test starts here
> >
> >  # Modify as appropriate.
> >  _supported_fs generic
> >  _require_user
> > +_require_attrs security
> >  _require_command "$GETCAP_PROG" getcap
> >  _require_command "$SETCAP_PROG" setcap
> >  _require_scratch_reflink
> > --
> > 2.27.0
> >
>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 1/2] generic/674: check for dedupe support on scratch fs
  2022-03-17 15:11   ` Darrick J. Wong
@ 2022-03-17 16:32     ` Boyang Xue
  0 siblings, 0 replies; 8+ messages in thread
From: Boyang Xue @ 2022-03-17 16:32 UTC (permalink / raw)
  To: Darrick J. Wong; +Cc: fstests

(Resend due to previous email being rejected. Sorry)

Thanks Darrick. I will replace the "_require_scratch_reflink" with
"_require_scratch_dedupe" in v2 patch.

-Boyang

On Thu, Mar 17, 2022 at 11:11 PM Darrick J. Wong <djwong@kernel.org> wrote:
>
> On Thu, Mar 17, 2022 at 06:08:41PM +0800, bxue@redhat.com wrote:
> > From: Boyang Xue <bxue@redhat.com>
> >
> > Signed-off-by: Boyang Xue <bxue@redhat.com>
> > ---
> >  tests/generic/674 | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/tests/generic/674 b/tests/generic/674
> > index bf0bcffb..7e5e4e29 100755
> > --- a/tests/generic/674
> > +++ b/tests/generic/674
> > @@ -19,6 +19,7 @@ _begin_fstest auto clone quick
> >  _supported_fs generic
> >  _require_user
> >  _require_scratch_reflink
> > +_require_scratch_dedupe
>
> I think you could replace the _require_scratch_reflink with
> _require_scratch_dedupe here, right?  I probably copypasta'd this.
>
> --D
>
> >  _require_xfs_io_command dedupe
> >
> >  _scratch_mkfs >> $seqres.full
> > --
> > 2.27.0
> >
>


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v1 2/2] generic/513,675: check for security namespace support
  2022-03-17 15:30   ` Darrick J. Wong
  2022-03-17 16:31     ` Boyang Xue
@ 2022-03-23  2:38     ` Zorro Lang
  1 sibling, 0 replies; 8+ messages in thread
From: Zorro Lang @ 2022-03-23  2:38 UTC (permalink / raw)
  To: Darrick J. Wong; +Cc: bxue, fstests

On Thu, Mar 17, 2022 at 08:30:38AM -0700, Darrick J. Wong wrote:
> On Thu, Mar 17, 2022 at 06:08:42PM +0800, bxue@redhat.com wrote:
> > From: Boyang Xue <bxue@redhat.com>
> > 
> 
> Er... what does this patch do, and why?

I think he's trying to avoid this failure on NFS:
  # setcap cap_net_raw=eip /mnt/nfs/file
  Failed to set capabilities on file `/mnt/nfs/file' (Operation not supported)

NFS doesn't support capabilities for long time, some other filesystems
might have same problem. So maybe we can have a helper [1], then call it as:

_require_capabilities

or

_require_capabilities cap_setuid cap_setgid

And test cases need capabilites as [2], I think we can add this requirement
in generic test at least (or all of them). What do you think?

Thanks,
Zorro


[1]
_require_capabilities()
{
	local capabilities=$*
	local tmp=`mktemp -u $TEST_DIR/capbility-XXXXXX`

	# Try all capabilities by default
	if [ -z "$capabilities" ];then
		capabilities="all"
	fi

	_require_command "$SETCAP_PROG" setcap
	rm -f $tmp.test
	rm -f $tmp.out

	for cap in $capabilities; do
		touch $tmp.test
		$SETCAP_PROG ${cap}=eip $tmp.test > $tmp.out 2>&1
		cat $tmp.out >> $seqres.full
		if grep -q 'Operation not supported' $tmp.out; then
			_notrun "Filesystem $FSTYP does not support to set $cap capability"
		fi
		if grep -q 'Invalid argument' $tmp.out; then
			_notrun "Capability $cap might not be supported by current system"
		fi
		rm -f $tmp.out
		rm -f $tmp.test
	done
	
}

[2]
[zorro@zlang-laptop xfstests-dev]$ grep -rsni SETCAP tests/
tests/btrfs/214:19:_require_command "$SETCAP_PROG" setcap
tests/btrfs/214:75:     $SETCAP_PROG "cap_sys_ptrace+ep cap_sys_nice+ep" "$FS1/foo.bar"
tests/btrfs/214:99:     $SETCAP_PROG "cap_sys_ptrace+ep cap_sys_nice+ep" "$FS1/foo.bar"
tests/btrfs/214:106:    $SETCAP_PROG "cap_sys_ptrace+ep cap_sys_nice+ep" "$FS1/foo.bar"
tests/btrfs/214:115:    $SETCAP_PROG "cap_sys_time+ep cap_syslog+ep" "$FS1/foo.bar"
tests/btrfs/235:29:_require_command "$SETCAP_PROG" setcap
tests/btrfs/235:48:$SETCAP_PROG cap_net_raw=p $SCRATCH_MNT/foo
tests/btrfs/235:67:$SETCAP_PROG cap_net_raw=p $SCRATCH_MNT/bar
tests/btrfs/235:71:$SETCAP_PROG cap_sys_nice=ep $SCRATCH_MNT/foo2
tests/overlay/064:18:_require_command "$SETCAP_PROG" setcap
tests/overlay/064:31:$SETCAP_PROG cap_setuid+ep ${lowerdir}/file1
tests/overlay/064:32:$SETCAP_PROG cap_setuid+ep ${lowerdir}/file2
tests/xfs/296:29:_require_command "$SETCAP_PROG" setcap
tests/xfs/296:39:$SETCAP_PROG cap_setgid,cap_setuid+ep $dump_dir/testfile
tests/generic/675:22:_require_command "$SETCAP_PROG" setcap
tests/generic/675:34:   $SETCAP_PROG cap_setgid,cap_setuid+ep $SCRATCH_MNT/a
tests/generic/513:20:_require_command "$SETCAP_PROG" setcap
tests/generic/513:28:$SETCAP_PROG cap_setgid,cap_setuid+ep $SCRATCH_MNT/bar
tests/generic/093:35:_require_command "$SETCAP_PROG" "setcap"
tests/generic/093:45:$SETCAP_PROG cap_chown+ep $file
tests/generic/093:53:$SETCAP_PROG cap_chown+ep $file
tests/generic/270:31:   $SETCAP_PROG cap_chown=epi  $tmp.fsstress.bin
tests/generic/270:60:_require_command "$SETCAP_PROG" setcap

> 
> --D
> 
> > Signed-off-by: Boyang Xue <bxue@redhat.com>
> > ---
> >  tests/generic/513 | 2 ++
> >  tests/generic/675 | 2 ++
> >  2 files changed, 4 insertions(+)
> > 
> > diff --git a/tests/generic/513 b/tests/generic/513
> > index dc082787..6e897fa0 100755
> > --- a/tests/generic/513
> > +++ b/tests/generic/513
> > @@ -12,10 +12,12 @@ _begin_fstest auto quick clone
> >  # Import common functions.
> >  . ./common/filter
> >  . ./common/reflink
> > +. ./common/attr
> >  
> >  # real QA test starts here
> >  _supported_fs generic
> >  _require_scratch_reflink
> > +_require_attrs security
> >  _require_command "$GETCAP_PROG" getcap
> >  _require_command "$SETCAP_PROG" setcap
> >  
> > diff --git a/tests/generic/675 b/tests/generic/675
> > index 23b7e545..311860dc 100755
> > --- a/tests/generic/675
> > +++ b/tests/generic/675
> > @@ -12,12 +12,14 @@ _begin_fstest auto clone quick
> >  # Import common functions.
> >  . ./common/filter
> >  . ./common/reflink
> > +. ./common/attr
> >  
> >  # real QA test starts here
> >  
> >  # Modify as appropriate.
> >  _supported_fs generic
> >  _require_user
> > +_require_attrs security
> >  _require_command "$GETCAP_PROG" getcap
> >  _require_command "$SETCAP_PROG" setcap
> >  _require_scratch_reflink
> > -- 
> > 2.27.0
> > 
> 


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2022-03-23  2:38 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-17 10:08 [PATCH v1 0/2] check for dedupe and security namespace support bxue
2022-03-17 10:08 ` [PATCH v1 1/2] generic/674: check for dedupe support on scratch fs bxue
2022-03-17 15:11   ` Darrick J. Wong
2022-03-17 16:32     ` Boyang Xue
2022-03-17 10:08 ` [PATCH v1 2/2] generic/513,675: check for security namespace support bxue
2022-03-17 15:30   ` Darrick J. Wong
2022-03-17 16:31     ` Boyang Xue
2022-03-23  2:38     ` Zorro Lang

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.