Bug#615998: linux-image-2.6.32-5-xen-amd64: Repeatable "kernel BUG at fs/jbd2/commit.c:534" from Postfix on ext4
- To: "Ted Ts'o" <email@example.com>
- Cc: Jan Kara <firstname.lastname@example.org>, Lukas Czerner <email@example.com>, Sean Ryle <firstname.lastname@example.org>, "email@example.com" <firstname.lastname@example.org>, "email@example.com" <firstname.lastname@example.org>, Sachin Sant <email@example.com>, "Aneesh Kumar K.V" <firstname.lastname@example.org>
- Subject: Bug#615998: linux-image-2.6.32-5-xen-amd64: Repeatable "kernel BUG at fs/jbd2/commit.c:534" from Postfix on ext4
- From: "Moffett, Kyle D" <Kyle.D.Moffett@boeing.com>
- Date: Tue, 28 Jun 2011 14:36:21 -0500
- Message-id: <[🔎] 28CB08E7-2850-498A-A8EB-A9B872D31F8F@boeing.com>
- Reply-to: "Moffett, Kyle D" <Kyle.D.Moffett@boeing.com>, email@example.com
- In-reply-to: <[🔎] 20110628141650.GH2729@thunk.org>
- References: <[🔎] 404FD5CC-8F27-4336-B7D4-10675C53A588@boeing.com> <[🔎] 20110624134659.GB26380@quack.suse.cz> <[🔎] 2F80BF45-28FA-46D3-9A28-CA9416DC5813@boeing.com> <[🔎] 20110624200231.GA32176@quack.suse.cz> <[🔎] alpine.LFD.firstname.lastname@example.org> <[🔎] 20110627140251.GI5597@quack.suse.cz> <[🔎] alpine.LFD.email@example.com> <[🔎] 20110627160140.GC2729@thunk.org> <[🔎] 2D8D1A30-C092-4163-B47A-BCEDACE536A3@boeing.com> <[🔎] 20110628093652.GA29978@quack.suse.cz> <[🔎] 20110628141650.GH2729@thunk.org>
On Jun 28, 2011, at 10:16, Ted Ts'o wrote:
>>> My basic impression is that the use of "data=journalled" can help
>>> reduce the risk (slightly) of serious corruption to some kinds of
>>> databases when the application does not provide appropriate syncs
>>> or journalling on its own (IE: such as text-based Wiki database files).
> Yes, although if the application has index files that have to be
> updated at the same time, there is no guarantee that the changes that
> survive after a system failure (either a crash or a power fail),
> unless the application is doing proper application-level journalling
> or some other structured.
Manually rebuilding application indexes and clearing out caches is fine;
with a badly written application I'd have to do that anyways. I just want
to reduce the risk that I actually corrupt data, and it sounds like that's
what data-journalling will help with.
>> To sum up, the only additional guarantee data=journal offers against
>> data=ordered is a total ordering of all IO operations. That is, if you do a
>> sequence of data and metadata operations, then you are guaranteed that
>> after a crash you will see the filesystem in a state corresponding exactly
>> to your sequence terminated at some (arbitrary) point. Data writes are
>> disassembled into page-sized & page-aligned sequence of writes for purpose
>> of this model...
> data=journal can also make the fsync() operation faster, since it will
> involver fewer seeks (although it will require a greater write
> bandwidth). Depending on the write bandwidth, you really need to
> benchmark things to be sure, though.
Hm, so this would actually be very beneficial for a mail spool directory
then, because mail servers are supposed to fsync each email received in
order to guarantee that it will not be lost before it acknowledges receipt
to the SMTP client.