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
next prev 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox