[PATCH v1.1 2/8] xfs/155: fail the test if xfs_repair hangs for too long

Darrick J. Wong
2024-02-27T04:41:01Z

There are a few hard to reproduce bugs in xfs_repair where it can
deadlock trying to lock a buffer that it already owns. These stalls
cause fstests never to finish, which is annoying! To fix this, set up
the xfs_repair run to abort after 10 minutes, which will affect the
golden output and capture a core file.

This doesn't fix xfs_repair, obviously.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
v1.1: require timeout command
---
tests/xfs/155 | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/tests/xfs/155 b/tests/xfs/155
index 302607b510..3181bfaf6f 100755
--- a/tests/xfs/155
+++ b/tests/xfs/155
@@ -26,6 +26,11 @@ _require_scratch_nocheck
_require_scratch_xfs_crc # needsrepair only exists for v5
_require_populate_commands
_require_libxfs_debug_flag LIBXFS_DEBUG_WRITE_CRASH
+_require_command "$TIMEOUT_PROG" timeout
+
+# Inject a 10 minute abortive timeout on the repair program so that deadlocks
+# in the program do not cause fstests to hang indefinitely.
+XFS_REPAIR_PROG="timeout -s ABRT 10m $XFS_REPAIR_PROG"

# Populate the filesystem
_scratch_populate_cached nofill >> $seqres.full 2>&1