* [PATCH] generic/020: fix really long attr test failure for ceph @ 2023-02-17 12:45 xiubli 2023-02-17 17:09 ` Darrick J. Wong 0 siblings, 1 reply; 8+ messages in thread From: xiubli @ 2023-02-17 12:45 UTC (permalink / raw) To: fstests; +Cc: david, djwong, ceph-devel, vshankar, zlang, Xiubo Li From: Xiubo Li <xiubli@redhat.com> If the CONFIG_CEPH_FS_SECURITY_LABEL is enabled the kernel ceph itself will set the security.selinux extended attribute to MDS. And it will also eat some space of the total size. Fixes: https://tracker.ceph.com/issues/58742 Signed-off-by: Xiubo Li <xiubli@redhat.com> --- tests/generic/020 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/generic/020 b/tests/generic/020 index be5cecad..594535b5 100755 --- a/tests/generic/020 +++ b/tests/generic/020 @@ -150,9 +150,11 @@ _attr_get_maxval_size() # it imposes a maximum size for the full set of xattrs # names+values, which by default is 64K. Compute the maximum # taking into account the already existing attributes - max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ + size=$(getfattr --dump -e hex $filename 2>/dev/null | \ awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') - max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) + selinux_size=$(getfattr -n 'security.selinux' --dump -e hex $filename 2>/dev/null | \ + awk -F "=0x" '/^security/ {len += length($1) + length($2) / 2} END {print len}') + max_attrval_size=$((65536 - $size - $selinux_size - $max_attrval_namelen)) ;; *) # Assume max ~1 block of attrs -- 2.31.1 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] generic/020: fix really long attr test failure for ceph 2023-02-17 12:45 [PATCH] generic/020: fix really long attr test failure for ceph xiubli @ 2023-02-17 17:09 ` Darrick J. Wong 2023-02-18 0:26 ` Xiubo Li 2023-02-18 6:04 ` Zorro Lang 0 siblings, 2 replies; 8+ messages in thread From: Darrick J. Wong @ 2023-02-17 17:09 UTC (permalink / raw) To: xiubli; +Cc: fstests, david, ceph-devel, vshankar, zlang On Fri, Feb 17, 2023 at 08:45:58PM +0800, xiubli@redhat.com wrote: > From: Xiubo Li <xiubli@redhat.com> > > If the CONFIG_CEPH_FS_SECURITY_LABEL is enabled the kernel ceph > itself will set the security.selinux extended attribute to MDS. > And it will also eat some space of the total size. > > Fixes: https://tracker.ceph.com/issues/58742 > Signed-off-by: Xiubo Li <xiubli@redhat.com> > --- > tests/generic/020 | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tests/generic/020 b/tests/generic/020 > index be5cecad..594535b5 100755 > --- a/tests/generic/020 > +++ b/tests/generic/020 > @@ -150,9 +150,11 @@ _attr_get_maxval_size() > # it imposes a maximum size for the full set of xattrs > # names+values, which by default is 64K. Compute the maximum > # taking into account the already existing attributes > - max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ > + size=$(getfattr --dump -e hex $filename 2>/dev/null | \ > awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') > - max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) > + selinux_size=$(getfattr -n 'security.selinux' --dump -e hex $filename 2>/dev/null | \ > + awk -F "=0x" '/^security/ {len += length($1) + length($2) / 2} END {print len}') > + max_attrval_size=$((65536 - $size - $selinux_size - $max_attrval_namelen)) If this is a ceph bug, then why is the change being applied to the section for FSTYP=ext* ? Why not create a case statement for ceph? --D > ;; > *) > # Assume max ~1 block of attrs > -- > 2.31.1 > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] generic/020: fix really long attr test failure for ceph 2023-02-17 17:09 ` Darrick J. Wong @ 2023-02-18 0:26 ` Xiubo Li 2023-02-18 6:04 ` Zorro Lang 1 sibling, 0 replies; 8+ messages in thread From: Xiubo Li @ 2023-02-18 0:26 UTC (permalink / raw) To: Darrick J. Wong; +Cc: fstests, david, ceph-devel, vshankar, zlang On 18/02/2023 01:09, Darrick J. Wong wrote: > On Fri, Feb 17, 2023 at 08:45:58PM +0800, xiubli@redhat.com wrote: >> From: Xiubo Li <xiubli@redhat.com> >> >> If the CONFIG_CEPH_FS_SECURITY_LABEL is enabled the kernel ceph >> itself will set the security.selinux extended attribute to MDS. >> And it will also eat some space of the total size. >> >> Fixes: https://tracker.ceph.com/issues/58742 >> Signed-off-by: Xiubo Li <xiubli@redhat.com> >> --- >> tests/generic/020 | 6 ++++-- >> 1 file changed, 4 insertions(+), 2 deletions(-) >> >> diff --git a/tests/generic/020 b/tests/generic/020 >> index be5cecad..594535b5 100755 >> --- a/tests/generic/020 >> +++ b/tests/generic/020 >> @@ -150,9 +150,11 @@ _attr_get_maxval_size() >> # it imposes a maximum size for the full set of xattrs >> # names+values, which by default is 64K. Compute the maximum >> # taking into account the already existing attributes >> - max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ >> + size=$(getfattr --dump -e hex $filename 2>/dev/null | \ >> awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') >> - max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) >> + selinux_size=$(getfattr -n 'security.selinux' --dump -e hex $filename 2>/dev/null | \ >> + awk -F "=0x" '/^security/ {len += length($1) + length($2) / 2} END {print len}') >> + max_attrval_size=$((65536 - $size - $selinux_size - $max_attrval_namelen)) > If this is a ceph bug, then why is the change being applied to the > section for FSTYP=ext* ? Why not create a case statement for ceph? Hi Darrick, The above change is already in the "ceph)" section: 143 nfs) 144 # NFS doesn't provide a way to find out the max_attrval_size for 145 # the underlying filesystem, so just use the lowest value above. 146 max_attrval_size=1024 147 ;; 148 ceph) 149 # CephFS does not have a maximum value for attributes. Instead, 150 # it imposes a maximum size for the full set of xattrs 151 # names+values, which by default is 64K. Compute the maximum 152 # taking into account the already existing attributes 153 size=$(getfattr --dump -e hex $filename 2>/dev/null | \ 154 awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') 155 selinux_size=$(getfattr -n 'security.selinux' --dump -e hex $filename 2>/dev/null | \ 156 awk -F "=0x" '/^security/ {len += length($1) + length($2) / 2} END {print len}') 157 max_attrval_size=$((65536 - $size - $selinux_size - $max_attrval_namelen)) 158 ;; 159 *) 160 # Assume max ~1 block of attrs 161 BLOCK_SIZE=`_get_block_size $TEST_DIR` 162 # leave a little overhead 163 let max_attrval_size=$BLOCK_SIZE-256 I didn't find the ext* section in _attr_get_maxval_size(). Did I miss something here ? I have double checked it again by pulling the latest source code, no any change about this since my last pull yesterday. Thanks - Xiubo > --D > >> ;; >> *) >> # Assume max ~1 block of attrs >> -- >> 2.31.1 >> -- Best Regards, Xiubo Li (李秀波) Email: xiubli@redhat.com/xiubli@ibm.com Slack: @Xiubo Li ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] generic/020: fix really long attr test failure for ceph 2023-02-17 17:09 ` Darrick J. Wong 2023-02-18 0:26 ` Xiubo Li @ 2023-02-18 6:04 ` Zorro Lang 2023-02-21 19:22 ` Darrick J. Wong 1 sibling, 1 reply; 8+ messages in thread From: Zorro Lang @ 2023-02-18 6:04 UTC (permalink / raw) To: Darrick J. Wong; +Cc: fstests, ceph-devel On Fri, Feb 17, 2023 at 09:09:11AM -0800, Darrick J. Wong wrote: > On Fri, Feb 17, 2023 at 08:45:58PM +0800, xiubli@redhat.com wrote: > > From: Xiubo Li <xiubli@redhat.com> > > > > If the CONFIG_CEPH_FS_SECURITY_LABEL is enabled the kernel ceph > > itself will set the security.selinux extended attribute to MDS. > > And it will also eat some space of the total size. > > > > Fixes: https://tracker.ceph.com/issues/58742 > > Signed-off-by: Xiubo Li <xiubli@redhat.com> > > --- > > tests/generic/020 | 6 ++++-- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/tests/generic/020 b/tests/generic/020 > > index be5cecad..594535b5 100755 > > --- a/tests/generic/020 > > +++ b/tests/generic/020 > > @@ -150,9 +150,11 @@ _attr_get_maxval_size() > > # it imposes a maximum size for the full set of xattrs > > # names+values, which by default is 64K. Compute the maximum > > # taking into account the already existing attributes > > - max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ > > + size=$(getfattr --dump -e hex $filename 2>/dev/null | \ > > awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') > > - max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) > > + selinux_size=$(getfattr -n 'security.selinux' --dump -e hex $filename 2>/dev/null | \ > > + awk -F "=0x" '/^security/ {len += length($1) + length($2) / 2} END {print len}') > > + max_attrval_size=$((65536 - $size - $selinux_size - $max_attrval_namelen)) > > If this is a ceph bug, then why is the change being applied to the > section for FSTYP=ext* ? Why not create a case statement for ceph? Hi Darrick, Looks like this change is in ceph section [1], did you hit any errors when you merge it? Thanks, Zorro [1] _attr_get_maxval_size() { local max_attrval_namelen="$1" local filename="$2" # Set max attr value size in bytes based on fs type case "$FSTYP" in ... ... ceph) # CephFS does not have a maximum value for attributes. Instead, # it imposes a maximum size for the full set of xattrs # names+values, which by default is 64K. Compute the maximum # taking into account the already existing attributes ====> max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') ====> max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) > > --D > > > ;; > > *) > > # Assume max ~1 block of attrs > > -- > > 2.31.1 > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] generic/020: fix really long attr test failure for ceph 2023-02-18 6:04 ` Zorro Lang @ 2023-02-21 19:22 ` Darrick J. Wong 2023-02-22 14:15 ` Zorro Lang 0 siblings, 1 reply; 8+ messages in thread From: Darrick J. Wong @ 2023-02-21 19:22 UTC (permalink / raw) To: Zorro Lang; +Cc: fstests, ceph-devel On Sat, Feb 18, 2023 at 02:04:36PM +0800, Zorro Lang wrote: > On Fri, Feb 17, 2023 at 09:09:11AM -0800, Darrick J. Wong wrote: > > On Fri, Feb 17, 2023 at 08:45:58PM +0800, xiubli@redhat.com wrote: > > > From: Xiubo Li <xiubli@redhat.com> > > > > > > If the CONFIG_CEPH_FS_SECURITY_LABEL is enabled the kernel ceph > > > itself will set the security.selinux extended attribute to MDS. > > > And it will also eat some space of the total size. > > > > > > Fixes: https://tracker.ceph.com/issues/58742 > > > Signed-off-by: Xiubo Li <xiubli@redhat.com> > > > --- > > > tests/generic/020 | 6 ++++-- > > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > > > diff --git a/tests/generic/020 b/tests/generic/020 > > > index be5cecad..594535b5 100755 > > > --- a/tests/generic/020 > > > +++ b/tests/generic/020 > > > @@ -150,9 +150,11 @@ _attr_get_maxval_size() > > > # it imposes a maximum size for the full set of xattrs > > > # names+values, which by default is 64K. Compute the maximum > > > # taking into account the already existing attributes > > > - max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ > > > + size=$(getfattr --dump -e hex $filename 2>/dev/null | \ > > > awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') > > > - max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) > > > + selinux_size=$(getfattr -n 'security.selinux' --dump -e hex $filename 2>/dev/null | \ > > > + awk -F "=0x" '/^security/ {len += length($1) + length($2) / 2} END {print len}') > > > + max_attrval_size=$((65536 - $size - $selinux_size - $max_attrval_namelen)) > > > > If this is a ceph bug, then why is the change being applied to the > > section for FSTYP=ext* ? Why not create a case statement for ceph? > > Hi Darrick, > > Looks like this change is in ceph section [1], did you hit any errors when > you merge it? ahahaa, diff tried to merge that hunk into _attr_get_max and not _attr_get_maxval_size, and I didn't notice. Question withdrawn with apologies. :/ --D > Thanks, > Zorro > > [1] > _attr_get_maxval_size() > { > local max_attrval_namelen="$1" > local filename="$2" > > # Set max attr value size in bytes based on fs type > case "$FSTYP" in > ... > ... > ceph) > # CephFS does not have a maximum value for attributes. Instead, > # it imposes a maximum size for the full set of xattrs > # names+values, which by default is 64K. Compute the maximum > # taking into account the already existing attributes > ====> max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ > awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') > ====> max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) > > > > > > > --D > > > > > ;; > > > *) > > > # Assume max ~1 block of attrs > > > -- > > > 2.31.1 > > > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] generic/020: fix really long attr test failure for ceph 2023-02-21 19:22 ` Darrick J. Wong @ 2023-02-22 14:15 ` Zorro Lang 2023-02-22 23:58 ` Xiubo Li 2023-02-27 4:14 ` Xiubo Li 0 siblings, 2 replies; 8+ messages in thread From: Zorro Lang @ 2023-02-22 14:15 UTC (permalink / raw) To: xiubli; +Cc: fstests, ceph-devel, Darrick J. Wong On Tue, Feb 21, 2023 at 11:22:02AM -0800, Darrick J. Wong wrote: > On Sat, Feb 18, 2023 at 02:04:36PM +0800, Zorro Lang wrote: > > On Fri, Feb 17, 2023 at 09:09:11AM -0800, Darrick J. Wong wrote: > > > On Fri, Feb 17, 2023 at 08:45:58PM +0800, xiubli@redhat.com wrote: > > > > From: Xiubo Li <xiubli@redhat.com> > > > > > > > > If the CONFIG_CEPH_FS_SECURITY_LABEL is enabled the kernel ceph > > > > itself will set the security.selinux extended attribute to MDS. > > > > And it will also eat some space of the total size. > > > > > > > > Fixes: https://tracker.ceph.com/issues/58742 > > > > Signed-off-by: Xiubo Li <xiubli@redhat.com> > > > > --- > > > > tests/generic/020 | 6 ++++-- > > > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > > > > > diff --git a/tests/generic/020 b/tests/generic/020 > > > > index be5cecad..594535b5 100755 > > > > --- a/tests/generic/020 > > > > +++ b/tests/generic/020 > > > > @@ -150,9 +150,11 @@ _attr_get_maxval_size() > > > > # it imposes a maximum size for the full set of xattrs > > > > # names+values, which by default is 64K. Compute the maximum > > > > # taking into account the already existing attributes > > > > - max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ > > > > + size=$(getfattr --dump -e hex $filename 2>/dev/null | \ > > > > awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') > > > > - max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) > > > > + selinux_size=$(getfattr -n 'security.selinux' --dump -e hex $filename 2>/dev/null | \ > > > > + awk -F "=0x" '/^security/ {len += length($1) + length($2) / 2} END {print len}') > > > > + max_attrval_size=$((65536 - $size - $selinux_size - $max_attrval_namelen)) The max_attrval_size isn't a local variable, due to we need it to be global. But the "size" and "selinux_size" look like not global variable, so better to be *local*. > > > > > > If this is a ceph bug, then why is the change being applied to the > > > section for FSTYP=ext* ? Why not create a case statement for ceph? > > > > Hi Darrick, > > > > Looks like this change is in ceph section [1], did you hit any errors when > > you merge it? > > ahahaa, diff tried to merge that hunk into _attr_get_max and not > _attr_get_maxval_size, and I didn't notice. Question withdrawn > with apologies. :/ Never mind. If there's not objection from you or ceph list, I'll merge this patch after it changes as above :) Thanks, Zorro > > --D > > > Thanks, > > Zorro > > > > [1] > > _attr_get_maxval_size() > > { > > local max_attrval_namelen="$1" > > local filename="$2" > > > > # Set max attr value size in bytes based on fs type > > case "$FSTYP" in > > ... > > ... > > ceph) > > # CephFS does not have a maximum value for attributes. Instead, > > # it imposes a maximum size for the full set of xattrs > > # names+values, which by default is 64K. Compute the maximum > > # taking into account the already existing attributes > > ====> max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ > > awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') > > ====> max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) > > > > > > > > > > > > --D > > > > > > > ;; > > > > *) > > > > # Assume max ~1 block of attrs > > > > -- > > > > 2.31.1 > > > > > > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] generic/020: fix really long attr test failure for ceph 2023-02-22 14:15 ` Zorro Lang @ 2023-02-22 23:58 ` Xiubo Li 2023-02-27 4:14 ` Xiubo Li 1 sibling, 0 replies; 8+ messages in thread From: Xiubo Li @ 2023-02-22 23:58 UTC (permalink / raw) To: Zorro Lang; +Cc: fstests, ceph-devel, Darrick J. Wong On 22/02/2023 22:15, Zorro Lang wrote: > On Tue, Feb 21, 2023 at 11:22:02AM -0800, Darrick J. Wong wrote: >> On Sat, Feb 18, 2023 at 02:04:36PM +0800, Zorro Lang wrote: >>> On Fri, Feb 17, 2023 at 09:09:11AM -0800, Darrick J. Wong wrote: >>>> On Fri, Feb 17, 2023 at 08:45:58PM +0800, xiubli@redhat.com wrote: >>>>> From: Xiubo Li <xiubli@redhat.com> >>>>> >>>>> If the CONFIG_CEPH_FS_SECURITY_LABEL is enabled the kernel ceph >>>>> itself will set the security.selinux extended attribute to MDS. >>>>> And it will also eat some space of the total size. >>>>> >>>>> Fixes: https://tracker.ceph.com/issues/58742 >>>>> Signed-off-by: Xiubo Li <xiubli@redhat.com> >>>>> --- >>>>> tests/generic/020 | 6 ++++-- >>>>> 1 file changed, 4 insertions(+), 2 deletions(-) >>>>> >>>>> diff --git a/tests/generic/020 b/tests/generic/020 >>>>> index be5cecad..594535b5 100755 >>>>> --- a/tests/generic/020 >>>>> +++ b/tests/generic/020 >>>>> @@ -150,9 +150,11 @@ _attr_get_maxval_size() >>>>> # it imposes a maximum size for the full set of xattrs >>>>> # names+values, which by default is 64K. Compute the maximum >>>>> # taking into account the already existing attributes >>>>> - max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ >>>>> + size=$(getfattr --dump -e hex $filename 2>/dev/null | \ >>>>> awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') >>>>> - max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) >>>>> + selinux_size=$(getfattr -n 'security.selinux' --dump -e hex $filename 2>/dev/null | \ >>>>> + awk -F "=0x" '/^security/ {len += length($1) + length($2) / 2} END {print len}') >>>>> + max_attrval_size=$((65536 - $size - $selinux_size - $max_attrval_namelen)) > The max_attrval_size isn't a local variable, due to we need it to be global. > But the "size" and "selinux_size" look like not global variable, so better > to be *local*. > >>>> If this is a ceph bug, then why is the change being applied to the >>>> section for FSTYP=ext* ? Why not create a case statement for ceph? >>> Hi Darrick, >>> >>> Looks like this change is in ceph section [1], did you hit any errors when >>> you merge it? >> ahahaa, diff tried to merge that hunk into _attr_get_max and not >> _attr_get_maxval_size, and I didn't notice. Question withdrawn >> with apologies. :/ > Never mind. If there's not objection from you or ceph list, I'll merge this > patch after it changes as above :) Sure. Thanks Zorro. - Xiubo > Thanks, > Zorro > >> --D >> >>> Thanks, >>> Zorro >>> >>> [1] >>> _attr_get_maxval_size() >>> { >>> local max_attrval_namelen="$1" >>> local filename="$2" >>> >>> # Set max attr value size in bytes based on fs type >>> case "$FSTYP" in >>> ... >>> ... >>> ceph) >>> # CephFS does not have a maximum value for attributes. Instead, >>> # it imposes a maximum size for the full set of xattrs >>> # names+values, which by default is 64K. Compute the maximum >>> # taking into account the already existing attributes >>> ====> max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ >>> awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') >>> ====> max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) >>> >>> >>> >>>> --D >>>> >>>>> ;; >>>>> *) >>>>> # Assume max ~1 block of attrs >>>>> -- >>>>> 2.31.1 >>>>> -- Best Regards, Xiubo Li (李秀波) Email: xiubli@redhat.com/xiubli@ibm.com Slack: @Xiubo Li ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] generic/020: fix really long attr test failure for ceph 2023-02-22 14:15 ` Zorro Lang 2023-02-22 23:58 ` Xiubo Li @ 2023-02-27 4:14 ` Xiubo Li 1 sibling, 0 replies; 8+ messages in thread From: Xiubo Li @ 2023-02-27 4:14 UTC (permalink / raw) To: Zorro Lang; +Cc: fstests, ceph-devel, Darrick J. Wong On 22/02/2023 22:15, Zorro Lang wrote: > On Tue, Feb 21, 2023 at 11:22:02AM -0800, Darrick J. Wong wrote: >> On Sat, Feb 18, 2023 at 02:04:36PM +0800, Zorro Lang wrote: >>> On Fri, Feb 17, 2023 at 09:09:11AM -0800, Darrick J. Wong wrote: >>>> On Fri, Feb 17, 2023 at 08:45:58PM +0800, xiubli@redhat.com wrote: >>>>> From: Xiubo Li <xiubli@redhat.com> >>>>> >>>>> If the CONFIG_CEPH_FS_SECURITY_LABEL is enabled the kernel ceph >>>>> itself will set the security.selinux extended attribute to MDS. >>>>> And it will also eat some space of the total size. >>>>> >>>>> Fixes: https://tracker.ceph.com/issues/58742 >>>>> Signed-off-by: Xiubo Li <xiubli@redhat.com> >>>>> --- >>>>> tests/generic/020 | 6 ++++-- >>>>> 1 file changed, 4 insertions(+), 2 deletions(-) >>>>> >>>>> diff --git a/tests/generic/020 b/tests/generic/020 >>>>> index be5cecad..594535b5 100755 >>>>> --- a/tests/generic/020 >>>>> +++ b/tests/generic/020 >>>>> @@ -150,9 +150,11 @@ _attr_get_maxval_size() >>>>> # it imposes a maximum size for the full set of xattrs >>>>> # names+values, which by default is 64K. Compute the maximum >>>>> # taking into account the already existing attributes >>>>> - max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ >>>>> + size=$(getfattr --dump -e hex $filename 2>/dev/null | \ >>>>> awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') >>>>> - max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) >>>>> + selinux_size=$(getfattr -n 'security.selinux' --dump -e hex $filename 2>/dev/null | \ >>>>> + awk -F "=0x" '/^security/ {len += length($1) + length($2) / 2} END {print len}') >>>>> + max_attrval_size=$((65536 - $size - $selinux_size - $max_attrval_namelen)) > The max_attrval_size isn't a local variable, due to we need it to be global. > But the "size" and "selinux_size" look like not global variable, so better > to be *local*. > Sorry I missed this. And now fixed it and sent out the V2. Thanks - Xiubo >>>> If this is a ceph bug, then why is the change being applied to the >>>> section for FSTYP=ext* ? Why not create a case statement for ceph? >>> Hi Darrick, >>> >>> Looks like this change is in ceph section [1], did you hit any errors when >>> you merge it? >> ahahaa, diff tried to merge that hunk into _attr_get_max and not >> _attr_get_maxval_size, and I didn't notice. Question withdrawn >> with apologies. :/ > Never mind. If there's not objection from you or ceph list, I'll merge this > patch after it changes as above :) > > Thanks, > Zorro > >> --D >> >>> Thanks, >>> Zorro >>> >>> [1] >>> _attr_get_maxval_size() >>> { >>> local max_attrval_namelen="$1" >>> local filename="$2" >>> >>> # Set max attr value size in bytes based on fs type >>> case "$FSTYP" in >>> ... >>> ... >>> ceph) >>> # CephFS does not have a maximum value for attributes. Instead, >>> # it imposes a maximum size for the full set of xattrs >>> # names+values, which by default is 64K. Compute the maximum >>> # taking into account the already existing attributes >>> ====> max_attrval_size=$(getfattr --dump -e hex $filename 2>/dev/null | \ >>> awk -F "=0x" '/^user/ {len += length($1) + length($2) / 2} END {print len}') >>> ====> max_attrval_size=$((65536 - $max_attrval_size - $max_attrval_namelen)) >>> >>> >>> >>>> --D >>>> >>>>> ;; >>>>> *) >>>>> # Assume max ~1 block of attrs >>>>> -- >>>>> 2.31.1 >>>>> -- Best Regards, Xiubo Li (李秀波) Email: xiubli@redhat.com/xiubli@ibm.com Slack: @Xiubo Li ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-02-27 4:15 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-02-17 12:45 [PATCH] generic/020: fix really long attr test failure for ceph xiubli 2023-02-17 17:09 ` Darrick J. Wong 2023-02-18 0:26 ` Xiubo Li 2023-02-18 6:04 ` Zorro Lang 2023-02-21 19:22 ` Darrick J. Wong 2023-02-22 14:15 ` Zorro Lang 2023-02-22 23:58 ` Xiubo Li 2023-02-27 4:14 ` Xiubo Li
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.