All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chao Yu <chao@kernel.org>
To: Zorro Lang <zlang@kernel.org>, fstests@vger.kernel.org
Cc: jaegeuk@kernel.org, linux-f2fs-devel@lists.sourceforge.net,
	Chao Yu <chao@kernel.org>
Subject: [PATCH] f2fs/009: fix race condition in orphan inode test
Date: Mon, 17 Aug 2026 09:11:37 +0000	[thread overview]
Message-ID: <20260817091137.1503208-1-chao@kernel.org> (raw)

f2fs/009     81s ... [failed, exit status 1]- output mismatch (see /share/git/fstests/results//f2fs/009.out.bad)
    --- tests/f2fs/009.out      2026-06-12 08:46:32.819432390 +0800
    +++ /share/git/fstests/results//f2fs/009.out.bad    2026-08-17 13:09:35.000000000 +0800
    @@ -1,2 +1,3 @@
     QA output created by 009
    -Silence is golden
    +can't find corruption
    +(see /share/git/fstests/results//f2fs/009.full for details)
    ...
    (Run 'diff -u /share/git/fstests/tests/f2fs/009.out /share/git/fstests/results//f2fs/009.out.bad'  to see the entire diff)

HINT: You _MAY_ be missing f2fs-tools fix:
      958cd6e fsck.f2fs: support to repair corrupted i_links

f2fs_io write ... atomic_commit ... 5000 runs in the background and has
an initial delay before invoking F2FS_IOC_START_ATOMIC_WRITE. Without a
sleep in the test script, rm and _scratch_shutdown -f run immediately
before f2fs_io enters atomic mode, causing f2fs_io to fail and
preventing the orphan inode from being committed to the on-disk
checkpoint.

Add a 2-second sleep to let f2fs_io enter atomic mode, record its PID,
then shutdown -f to ensure the orphan inode is written to the checkpoint,
and clean up the background process properly.

Signed-off-by: Chao Yu <chao@kernel.org>
---
 tests/f2fs/009 | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tests/f2fs/009 b/tests/f2fs/009
index afb3bc98f..df8bef96c 100755
--- a/tests/f2fs/009
+++ b/tests/f2fs/009
@@ -106,10 +106,14 @@ check_links 0 0
 touch $filename
 ino=`stat -c '%i' $filename`
 $F2FS_IO_PROG write 1 0 1 zero atomic_commit $filename 5000 >> $seqres.full 2>&1 &
+pid=$!
+sleep 2
 stat $filename >> $seqres.full
 rm $filename
 _scratch_shutdown -f
-sleep 6
+sleep 4
+kill $pid &> /dev/null
+wait $pid &> /dev/null
 check_links 1 0 $ino
 
 # hardlink
-- 
2.49.0


WARNING: multiple messages have this Message-ID (diff)
From: Chao Yu via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net>
To: Zorro Lang <zlang@kernel.org>, fstests@vger.kernel.org
Cc: jaegeuk@kernel.org, linux-f2fs-devel@lists.sourceforge.net
Subject: [f2fs-dev] [PATCH] f2fs/009: fix race condition in orphan inode test
Date: Mon, 17 Aug 2026 09:11:37 +0000	[thread overview]
Message-ID: <20260817091137.1503208-1-chao@kernel.org> (raw)

f2fs/009     81s ... [failed, exit status 1]- output mismatch (see /share/git/fstests/results//f2fs/009.out.bad)
    --- tests/f2fs/009.out      2026-06-12 08:46:32.819432390 +0800
    +++ /share/git/fstests/results//f2fs/009.out.bad    2026-08-17 13:09:35.000000000 +0800
    @@ -1,2 +1,3 @@
     QA output created by 009
    -Silence is golden
    +can't find corruption
    +(see /share/git/fstests/results//f2fs/009.full for details)
    ...
    (Run 'diff -u /share/git/fstests/tests/f2fs/009.out /share/git/fstests/results//f2fs/009.out.bad'  to see the entire diff)

HINT: You _MAY_ be missing f2fs-tools fix:
      958cd6e fsck.f2fs: support to repair corrupted i_links

f2fs_io write ... atomic_commit ... 5000 runs in the background and has
an initial delay before invoking F2FS_IOC_START_ATOMIC_WRITE. Without a
sleep in the test script, rm and _scratch_shutdown -f run immediately
before f2fs_io enters atomic mode, causing f2fs_io to fail and
preventing the orphan inode from being committed to the on-disk
checkpoint.

Add a 2-second sleep to let f2fs_io enter atomic mode, record its PID,
then shutdown -f to ensure the orphan inode is written to the checkpoint,
and clean up the background process properly.

Signed-off-by: Chao Yu <chao@kernel.org>
---
 tests/f2fs/009 | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tests/f2fs/009 b/tests/f2fs/009
index afb3bc98f..df8bef96c 100755
--- a/tests/f2fs/009
+++ b/tests/f2fs/009
@@ -106,10 +106,14 @@ check_links 0 0
 touch $filename
 ino=`stat -c '%i' $filename`
 $F2FS_IO_PROG write 1 0 1 zero atomic_commit $filename 5000 >> $seqres.full 2>&1 &
+pid=$!
+sleep 2
 stat $filename >> $seqres.full
 rm $filename
 _scratch_shutdown -f
-sleep 6
+sleep 4
+kill $pid &> /dev/null
+wait $pid &> /dev/null
 check_links 1 0 $ino
 
 # hardlink
-- 
2.49.0



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

             reply	other threads:[~2026-08-17  9:11 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-17  9:11 Chao Yu [this message]
2026-08-17  9:11 ` [f2fs-dev] [PATCH] f2fs/009: fix race condition in orphan inode test Chao Yu via Linux-f2fs-devel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260817091137.1503208-1-chao@kernel.org \
    --to=chao@kernel.org \
    --cc=fstests@vger.kernel.org \
    --cc=jaegeuk@kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=zlang@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.