diff mbox series

[1/2] generic/269, generic/475: disable io_uring to prevent umount EBUSY flakes

Message ID 20240613221810.803463-1-tytso@mit.edu (mailing list archive)
State New, archived
Headers show
Series [1/2] generic/269, generic/475: disable io_uring to prevent umount EBUSY flakes | expand

Commit Message

Theodore Ts'o June 13, 2024, 10:18 p.m. UTC
There is an I/O uring bug which can hold on to file references after
the userspace program exits.  This is causing tests which run fsstress
and then try to unmount the file system to fail in a flaky fashion.
Since the point of these tests is not to test io_uring, and io_uring
has remained buggy since August 2023, let's fix the problem by
disabling io_uring in fsstress for these tests.

We can add a new test which specifically (and reliably) tests for this
io_uring bug.

See the link below for more details.

Link: https://lore.kernel.org/fstests/20230831151837.qexyqjgvrllqaz26@zlang-mailbox/
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
---
 tests/generic/269 | 3 +++
 tests/generic/475 | 3 +++
 2 files changed, 6 insertions(+)
diff mbox series

Patch

diff --git a/tests/generic/269 b/tests/generic/269
index 29f453735..9be7ea9aa 100755
--- a/tests/generic/269
+++ b/tests/generic/269
@@ -13,6 +13,9 @@  _begin_fstest auto rw prealloc ioctl enospc stress
 . ./common/filter
 # Disable all sync operations to get higher load
 FSSTRESS_AVOID="$FSSTRESS_AVOID -ffsync=0 -fsync=0 -ffdatasync=0"
+# io_uring is buggy and causes "fsstress; umount" EBUSY test flakes
+FSSTRESS_AVOID="$FSSTRESS_AVOID -f uring_read=0 -f uring_write=0"
+
 _workout()
 {
 	echo ""
diff --git a/tests/generic/475 b/tests/generic/475
index abd6e89a1..3e9200771 100755
--- a/tests/generic/475
+++ b/tests/generic/475
@@ -45,6 +45,9 @@  _require_metadata_journaling $SCRATCH_DEV
 _dmerror_init
 _dmerror_mount
 
+# io_uring is buggy and causes "fsstress; umount" EBUSY test flakes
+FSSTRESS_AVOID="$FSSTRESS_AVOID -f uring_read=0 -f uring_write=0"
+
 while _soak_loop_running $((50 * TIME_FACTOR)); do
 	($FSSTRESS_PROG $FSSTRESS_AVOID -d $SCRATCH_MNT -n 999999 -p $((LOAD_FACTOR * 4)) >> $seqres.full &) \
 		> /dev/null 2>&1