From: "Theodore Ts'o" <tytso@mit.edu>
To: "Luis Henriques (SUSE)" <luis.henriques@linux.dev>
Cc: Andreas Dilger <adilger@dilger.ca>, Jan Kara <jack@suse.cz>,
Harshad Shirwadkar <harshadshirwadkar@gmail.com>,
linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/2] ext4: fix fast commit inode enqueueing during a full journal commit
Date: Mon, 8 Jul 2024 23:59:11 -0400 [thread overview]
Message-ID: <20240709035911.GB10452@mit.edu> (raw)
In-Reply-To: <20240529092030.9557-2-luis.henriques@linux.dev>
On Wed, May 29, 2024 at 10:20:29AM +0100, Luis Henriques (SUSE) wrote:
> When a full journal commit is on-going, any fast commit has to be enqueued
> into a different queue: FC_Q_STAGING instead of FC_Q_MAIN. This enqueueing
> is done only once, i.e. if an inode is already queued in a previous fast
> commit entry it won't be enqueued again. However, if a full commit starts
> _after_ the inode is enqueued into FC_Q_MAIN, the next fast commit needs to
> be done into FC_Q_STAGING. And this is not being done in function
> ext4_fc_track_template().
>
> This patch fixes the issue by re-enqueuing an inode into the STAGING queue
> during the fast commit clean-up callback if it has a tid (i_sync_tid)
> greater than the one being handled. The STAGING queue will then be spliced
> back into MAIN.
>
> This bug was found using fstest generic/047. This test creates several 32k
> bytes files, sync'ing each of them after it's creation, and then shutting
> down the filesystem. Some data may be loss in this operation; for example a
> file may have it's size truncated to zero.
>
> Signed-off-by: Luis Henriques (SUSE) <luis.henriques@linux.dev>
This patch is causing a regression for the test generic/472
generic/496 generic/643 if fast_commit is enabled. So using the
ext4/adv or ext4/fast_commit configuration, e.g:
% kvm-xfstests -c ext4/fast_commit generic/472 generic/496 generic/643
For all of these test, the failures seem to involve the swapon command
erroring out:
--- tests/generic/496.out 2024-06-13 18:57:39.000000000 -0400
+++ /results/ext4/results-fast_commit/generic/496.out.bad 2024-07-08 23:46:39.720
@@ -1,3 +1,4 @@
QA output created by 496
fallocate swap
mixed swap
+swapon: Invalid argument
...
but it's unclear why this patch would affect swapon.
I've never been able to see generic/047 failure in any of my ext4/dev
testing, nor in any of my daily fs-next CI testing. So for that
reason, I'm going to drop this patch from my tree.
The second patch in this series appears to be independent at least
from a logical perspective --- although a minor change is needed to
resolve a merge conflict after dropping this change.
Luis, Harshad, could you look in this failure and then resubmit once
it's been fixed? Thanks!! Also, Luis, can you give more details
about the generic/047 failure that you had seen? Is it one of those
flaky tests where you need to run the test dozens or hundreds of time
to see the failure?
Many thanks!!
- Ted
next prev parent reply other threads:[~2024-07-09 3:59 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-29 9:20 [PATCH v3 0/2] ext4: fix fast commit inode enqueueing during a full journal commit Luis Henriques (SUSE)
2024-05-29 9:20 ` [PATCH v3 1/2] " Luis Henriques (SUSE)
2024-05-29 9:50 ` Jan Kara
2024-05-29 16:52 ` harshad shirwadkar
2024-07-09 3:59 ` Theodore Ts'o [this message]
2024-07-09 14:39 ` Luis Henriques
2024-07-10 10:32 ` Luis Henriques
2024-05-29 9:20 ` [PATCH v3 2/2] ext4: fix possible tid_t sequence overflows Luis Henriques (SUSE)
2024-05-29 9:51 ` Jan Kara
2024-05-29 16:51 ` harshad shirwadkar
2024-06-27 13:54 ` [PATCH v3 0/2] ext4: fix fast commit inode enqueueing during a full journal commit Luis Henriques
2024-06-27 14:58 ` Theodore Ts'o
2024-06-27 15:10 ` Luis Henriques
2024-07-11 2:35 ` Theodore Ts'o
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=20240709035911.GB10452@mit.edu \
--to=tytso@mit.edu \
--cc=adilger@dilger.ca \
--cc=harshadshirwadkar@gmail.com \
--cc=jack@suse.cz \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luis.henriques@linux.dev \
/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;
as well as URLs for NNTP newsgroup(s).