common/xfs: work around a hang-on-stdin bug in xfs_admin 5.11
authorDarrick J. Wong <djwong@kernel.org>
Wed, 31 Mar 2021 01:08:15 +0000 (18:08 -0700)
committerEryu Guan <guaneryu@gmail.com>
Sun, 11 Apr 2021 13:22:56 +0000 (21:22 +0800)
xfs_admin in xfsprogs 5.11 has a bug wherein a caller who specifies an
external log device forces xfs_db to be invoked, potentially with zero
command arguments.  When this happens, xfs_db will wait for input on
stdin, which causes fstests to hang.  Since xfs_admin is not an
interactive tool, redirect stdin from /dev/null to prevent this issue.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/xfs

index 6e1e661..887bd00 100644 (file)
@@ -277,7 +277,13 @@ _scratch_xfs_admin()
                        _notrun 'xfs_admin does not support rt devices'
                rt_opts+=(-r "$SCRATCH_RTDEV")
        fi
-       $XFS_ADMIN_PROG "${rt_opts[@]}" "$@" "${options[@]}"
+
+       # xfs_admin in xfsprogs 5.11 has a bug where an external log device
+       # forces xfs_db to be invoked, potentially with zero command arguments.
+       # When this happens, xfs_db will wait for input on stdin, which causes
+       # fstests to hang.  Since xfs_admin is not an interactive tool, we
+       # can redirect stdin from /dev/null to prevent this issue.
+       $XFS_ADMIN_PROG "${rt_opts[@]}" "$@" "${options[@]}" < /dev/null
 }
 
 _scratch_xfs_logprint()