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@xxxxxxx> --- tests/generic/269 | 3 +++ tests/generic/475 | 3 +++ 2 files changed, 6 insertions(+) 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 -- 2.43.0