Re: [PATCH] common/rc: fix _check_xfs_scrub_does_unicode on newer versions of libc-bin

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Sun, Jan 09, 2022 at 02:59:35PM -0500, Theodore Ts'o wrote:
> Debian 10 uses ldd from glibc 2.28, where as Debian 11 uses ldd from
> glibc 2.31.  Sometime between glibc 2.28 and 2.31, ldd has been
> changed so that the message "not a dynamic executable" is sent stderr,
> where before it was sent to stdout.  As a result, it caused
> regressions for tests such as generic/453 which uses
> _check_xfs_scurb_does_unicode:
> 
> generic/453 5s ... 	[22:42:03] [22:42:08]- output mismatch (see /results/xfs/results-4k/generic/453.out.bad)
>     --- tests/generic/453.out	2022-01-08 15:15:15.000000000 -0500
>     +++ /results/xfs/results-4k/generic/453.out.bad	2022-01-08 22:42:08.596982251 -0500
>     @@ -4,3 +4,4 @@
>      Test files
>      Uniqueness of inodes?
>      Test XFS online scrub, if applicable
>     +	not a dynamic executable
>     ...
> 
> Fix this by sending stderr from ldd to /dev/null.  This is not a
> perfect solution, since it means that even if xfs_scrub was compiled
> with libicui18n, we will skip the online scrub portion of generic/453.
> However, this fixes the regression when runtime OS is changed from
> Debian Buster to Debian Bullseye when xfsprogs is built statically.
> 
> In the long run, it would be nice if we could determine whether
> xfs_scrub has unicode support without using ldd --- perhaps by
> signally this in the output of xfs_scrub -V --- but we'll need to
> discuss this with the xfsprogs maintainers.

Hm, yeah, I suppose we could improve the way xfs_scrub reports its own
capabilities.  I'll work on that, though in the mean time I think you
can detect it via...

strings $XFS_SCRUB_PROG | grep -q 'Unicode name.*%s'

> Signed-off-by: Theodore Ts'o <tytso@xxxxxxx>

In the meantime, this at least shuts up the false fail, so

Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx>

--D

> ---
>  common/rc | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/common/rc b/common/rc
> index 87b9b69b..add6170c 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -4909,7 +4909,7 @@ _check_xfs_scrub_does_unicode() {
>  
>  	# We only care if xfs_scrub has unicode string support...
>  	if ! type ldd > /dev/null 2>&1 || \
> -	   ! ldd "${XFS_SCRUB_PROG}" | grep -q libicui18n; then
> +	   ! ldd "${XFS_SCRUB_PROG}" 2> /dev/null | grep -q libicui18n; then
>  		return 1
>  	fi
>  
> -- 
> 2.31.0
> 



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux