All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zorro Lang <zlang@kernel.org>
To: fstests@vger.kernel.org
Subject: [PATCH 3/5] generic/591: remove redundant output from golden image
Date: Sun, 29 May 2022 18:55:03 +0800	[thread overview]
Message-ID: <20220529105505.667891-4-zlang@kernel.org> (raw)
In-Reply-To: <20220529105505.667891-1-zlang@kernel.org>

In generic/591.out expects below output:
  concurrent reader with O_DIRECT
  concurrent reader with O_DIRECT     <=== ???
  concurrent reader without O_DIRECT
  concurrent reader without O_DIRECT  <=== ???
  sequential reader with O_DIRECT
  sequential reader without O_DIRECT

The lines marked "???" are unbelievable, due to the src/splice-test.c
only calls printf to output that message once in main function. So
Why splice-test prints that message twice sometimes? It seems related
with the "-r" option, due to the test lines without "-r" option only
print one line each time running.

A stanger thing is this "double output" issue only can be triggered by
running g/591, can't reproduce it by running splice-test manually.

By checking the code of splice-test.c, I found a "fork()" in it, and
it'll be called if the '-r' option is specified. So I suspect the
redundant output come from the child process. By the help of strace
tool, I got:

  10554 execve("/root/git/xfstests/src/splice-test", ["/root/git/xfstests/src/splice-te"..., "-r", "/mnt/test/a"], 0x7ffcabc2c0a8 /* 202 vars */) = 0
  ...
  10554 clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f937f5d5a10) = 10555
  ...
  10555 read(4, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"..., 512) = 512
  10555 write(1, "concurrent reader with O_DIRECT\n", 32) = 32
  10555 exit_group(0)                     = ?
  10555 +++ exited with 0 +++
  10554 <... wait4 resumed>NULL, 0, NULL) = 10555
  10554 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=10555, si_uid=0, si_status=0, si_utime=0, si_stime=1} ---
  10554 unlink("/mnt/test/a")             = 0
  10554 write(1, "concurrent reader with O_DIRECT\n", 32) = 32
  10554 exit_group(0)                     = ?
  10554 +++ exited with 0 +++

We can see the "concurrent reader with O_DIRECT\n" be printed by
parent process 10554 and child process 10555 separately.

As the output from child is unexpected and unstable. So I think we
shouldn't use it as golden image. So I add a "fflush(stdout)" to
clear the output buffer of parent process before forking a child.
Then correct the generic/591.out.

Signed-off-by: Zorro Lang <zlang@kernel.org>
---
 src/splice-test.c     | 1 +
 tests/generic/591.out | 2 --
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/splice-test.c b/src/splice-test.c
index 2f1ba2ba..e6ae6fca 100644
--- a/src/splice-test.c
+++ b/src/splice-test.c
@@ -143,6 +143,7 @@ int main(int argc, char *argv[])
 	printf("%s reader %s O_DIRECT\n",
 		   do_splice == do_splice1 ? "sequential" : "concurrent",
 		   (open_flags & O_DIRECT) ? "with" : "without");
+	fflush(stdout);
 
 	buffer = memalign(SECTOR_SIZE, BUFFER_SIZE);
 	if (buffer == NULL)
diff --git a/tests/generic/591.out b/tests/generic/591.out
index d61811ee..e9fffd1d 100644
--- a/tests/generic/591.out
+++ b/tests/generic/591.out
@@ -1,7 +1,5 @@
 QA output created by 591
 concurrent reader with O_DIRECT
-concurrent reader with O_DIRECT
-concurrent reader without O_DIRECT
 concurrent reader without O_DIRECT
 sequential reader with O_DIRECT
 sequential reader without O_DIRECT
-- 
2.31.1


  parent reply	other threads:[~2022-05-29 10:55 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-29 10:55 [PATCH 0/5] random fixes for fstests Zorro Lang
2022-05-29 10:55 ` [PATCH 1/5] generic/139: require 512 bytes to be the minimum dio size Zorro Lang
2022-05-30  0:11   ` Dave Chinner
2022-05-29 10:55 ` [PATCH 2/5] generic/506: call _require_quota before _qmount Zorro Lang
2022-05-30  0:12   ` Dave Chinner
2022-05-29 10:55 ` Zorro Lang [this message]
2022-05-30  0:44   ` [PATCH 3/5] generic/591: remove redundant output from golden image Dave Chinner
2022-05-30  5:43     ` Zorro Lang
2022-05-29 10:55 ` [PATCH 4/5] generic/591: use proper sector size Zorro Lang
2022-05-29 23:57   ` Dave Chinner
2022-05-30  6:02     ` Zorro Lang
2022-05-29 10:55 ` [PATCH 5/5] generic/623: add overlay into the blacklist Zorro Lang
2022-05-30  5:54   ` Amir Goldstein
2022-05-30  6:22     ` Zorro Lang

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=20220529105505.667891-4-zlang@kernel.org \
    --to=zlang@kernel.org \
    --cc=fstests@vger.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.