FS/XFS testing framework
 help / color / mirror / Atom feed
* [PATCH] generic/347: Fix sporadic test failures
@ 2026-07-30 15:18 Jan Kara
  2026-08-03  8:27 ` Zorro Lang
  0 siblings, 1 reply; 4+ messages in thread
From: Jan Kara @ 2026-07-30 15:18 UTC (permalink / raw)
  To: Zorro Lang; +Cc: fstests, Jan Kara

generic/347 was occasionally failing on ext4 in our QA due to ext4
aborting its journal when the filesystem on thinp device was overfilled.
I have tracked the problem down to journal checkpointing failing to
write a metadata block to its final location due to ENOSPC failure from
the thinp device. Modify the test to first preallocate blocks for the
files and remount the filesystem which practically makes sure all
involved metadata blocks were written and so their further modifications
will not fail.

Signed-off-by: Jan Kara <jack@suse.cz>
---
 tests/generic/347 | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/tests/generic/347 b/tests/generic/347
index 06df0cf9eddc..56538c160392 100755
--- a/tests/generic/347
+++ b/tests/generic/347
@@ -38,7 +38,17 @@ _setup_thin()
 
 _workout()
 {
-	# Overfill it by a bit
+	# Preallocate space to avoid failure for metadata writeback
+	for I in `seq 1 500`; do
+		$XFS_IO_PROG -f -c "falloc 0 1M" $SCRATCH_MNT/file$I &>/dev/null
+	done
+
+	# Unmount and check the device to make sure all metadata is written
+	_dmthin_check_fs
+	_dmthin_mount
+
+	# Write the data blocks to force thinp space allocation.
+	# Overfill it by a bit.
 	for I in `seq 1 500`; do
 		$XFS_IO_PROG -f -c "pwrite -W 0 1M" $SCRATCH_MNT/file$I &>/dev/null
 	done
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-08-04 10:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-30 15:18 [PATCH] generic/347: Fix sporadic test failures Jan Kara
2026-08-03  8:27 ` Zorro Lang
2026-08-03 11:20   ` Jan Kara
2026-08-04 10:12     ` Zorro Lang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox