From: Ted Ts'o <tytso@mit.edu>
To: Martin_Zielinski@McAfee.com
Cc: linux-ext4@vger.kernel.org
Subject: Re: 2.6.32 ext3 assertion j_running_transaction != NULL fails in commit.c
Date: Mon, 25 Apr 2011 19:14:54 -0400 [thread overview]
Message-ID: <20110425231454.GB9486@thunk.org> (raw)
In-Reply-To: <BCB84D936723884B91E4CC5CA0A7C54AA4F6D082BE@EMEADALEXMB1.corp.nai.org>
On Thu, Apr 21, 2011 at 09:17:57AM -0500, Martin_Zielinski@McAfee.com wrote:
>
> I posted this BUG already on the ext3-users list without response.
> After making some new observations I hope, that someone here can
> tell me these make sense. Kernel output of the BUG is at the end of
> the mail.
Hi Martin,
Thanks for your observations. I don't necessarily always follow mail
sent to ext3-users, but fortunately I saw this note sent to the LKML
list.
> Here's some debug output that I put into the code:
> kernel: (fs/ext3/fsync.c, 77): ext3_sync_file: ext3_sync_file datasync=1 d_tid=27807 tid=27846
> kernel: (fs/jbd/journal.c, 467): log_start_commit: log start commit called with commit request=27845, tid=27807 running transaction=ffff8800266913c0 27846
>
> So the "really-commited" transaction id was advancing while this
> datasync_tid stayed the same and journal.c - log_start_commit() was
> called without waking the commit process.
>
> I wondered what happens if the current journal tid is overflowing
> (32bit unsigned integer). By forcing the tid in get_transaction to
> jump close to UINT_MAX, I could reproduce the BUG.
A simple overflow shouldn't cause the problem, because of how
tid_geq() is coded. However, if there have been 2**31 commits since
the fdatasync file has been opened, it's possible to trigger this.
That's a **lot** of commits, so I'm not sure I'm completely happy with
this theory. Nevertheless, I believe this set of patches (one for
ext4, and one for ext3), should prevent the crash from happening.
- Ted
next prev parent reply other threads:[~2011-04-25 23:14 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-21 14:17 2.6.32 ext3 assertion j_running_transaction != NULL fails in commit.c Martin_Zielinski
2011-04-25 23:14 ` Ted Ts'o [this message]
2011-04-26 0:23 ` [PATCH 1/2] jbd2: fix fsync() tid wraparound bug Theodore Ts'o
2011-04-26 0:23 ` [PATCH 2/2] jbd: " Theodore Ts'o
2011-04-30 17:17 ` Ted Ts'o
2011-05-02 15:07 ` Jan Kara
2011-05-02 18:29 ` Ted Ts'o
2011-05-02 19:04 ` Jan Kara
2011-05-02 21:31 ` Ted Ts'o
2011-05-04 14:21 ` Martin_Zielinski
2011-05-04 21:55 ` Jan Kara
2011-05-05 14:11 ` Martin_Zielinski
2011-05-05 15:53 ` Jan Kara
2011-05-05 14:55 ` Martin_Zielinski
2011-05-05 15:43 ` Jan Kara
2011-04-26 9:07 ` 2.6.32 ext3 assertion j_running_transaction != NULL fails in commit.c Martin_Zielinski
2011-04-26 12:23 ` Ted Ts'o
2011-04-26 12:45 ` Martin_Zielinski
2011-04-26 17:20 ` Ted 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=20110425231454.GB9486@thunk.org \
--to=tytso@mit.edu \
--cc=Martin_Zielinski@McAfee.com \
--cc=linux-ext4@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.