[PATCH 2/3] common/xfs: work around a hang-on-stdin bug in xfs_admin 5.11

Darrick J. Wong
2021-03-31T01:09:23Z

From: Darrick J. Wong <djwong@kernel.org>

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>
---
common/xfs | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/common/xfs b/common/xfs
index 189da54b..c97e08ba 100644
--- a/common/xfs
+++ b/common/xfs
@@ -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()