From: Alex Lyashkov <shadow@itt.net.ru>
To: Jan Kara <jack@suse.cz>
Cc: Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org,
Herbert Poetzl <herbert@13thfloor.at>
Subject: Re: [BUG] journal handler reference count breaked and fs deadlocked
Date: Mon, 10 Nov 2003 15:07:18 +0200 [thread overview]
Message-ID: <200311101507.20959.shadow@itt.net.ru> (raw)
In-Reply-To: <20031110115050.GA17124@atrey.karlin.mff.cuni.cz>
> >
> > It kernel from my fork vserver project who adapted to RH kernel tree.
> > i do stress testing and see this problems.
> > I see you only rename function, set NO_ATIME to diskquota..
> > and change at one point
> > - commit_dqblk(dquot);
> > + dquot->dq_sb->dq_op->write_dquot(dquot);
> > it`s rignt ?
> > i probe to adapted it fix to my kernel..
>
> Yes, that should be the only changes.
>
I add it but it not fix my problem..
i enable debug print in diskquotas and see sync diskquots be finished before
kernel locked.
sample output:
============================================================
(revoke.c, 375): journal_cancel_revoke: journal_head c79d6990, cancelling
revoke
(transaction.c, 567): do_get_write_access: buffer_head c79d6990, force_copy 0
(revoke.c, 375): journal_cancel_revoke: journal_head c79d6990, cancelling
revoke
(transaction.c, 1104): journal_dirty_metadata: journal_head c79d6990
(transaction.c, 1391): journal_stop: Handle c6cd0500 going down
(transaction.c, 102): start_this_handle: New handle c6cd0500 going live.
(transaction.c, 204): start_this_handle: Handle c6cd0500 given 1 credits
(total)
(inode.c, 2587): ext3_dirty_inode: marking dirty. outer handle=00000000
(transaction.c, 567): do_get_write_access: buffer_head c79d6990, force_copy 0
(revoke.c, 375): journal_cancel_revoke: journal_head c79d6990, cancelling
revoke
(transaction.c, 567): do_get_write_access: buffer_head c79d6990, force_copy 0
(revoke.c, 375): journal_cancel_revoke: journal_head c79d6990, cancelling
revoke
(transaction.c, 1104): journal_dirty_metadata: journal_head c79d6990
(transaction.c, 1391): journal_stop: Handle c6cd0500 going down
(transaction.c, 102): start_this_handle: New handle c6cd0500 going live.
(transaction.c, 204): start_this_handle: Handle c6cd0500 given 1 credits
(total)
(inode.c, 2587): ext3_dirty_inode: marking dirty. outer handle=00000000
(transaction.c, 102): start_this_handle: New handle c6cd0340 going live.
(transaction.c, 204): start_this_handle: Handle c6cd0340 given 26 credits
(tota)
(transaction.c, 955): journal_dirty_data: jh: c79d6c00, tid:507179
(transaction.c, 1391): journal_stop: Handle c6cd0340 going down
dqput(): dq:c7b7e180
put_dqout_ref c7b7e180 341 USR 81
ctx_sync_dquots end
(journal.c, 581): log_start_commit: JBD: requesting commit 507179/507178
(journal.c, 608): log_wait_commit: JBD: want 507179, j_commit_sequence=507178
(journal.c, 263): kjournald: kjournald wakes
(journal.c, 238): kjournald: commit_sequence=507178, commit_request=507179
(journal.c, 242): kjournald: OK, requests differ
(commit.c, 81): journal_commit_transaction: JBD: starting commit of
transaction9
(commit.c, 87): journal_commit_transaction: wait updates.......
(transaction.c, 102): start_this_handle: New handle c6cd0340 going live.
(transaction.c, 136): start_this_handle: Handle c6cd0340 stalling...
(transaction.c, 567): do_get_write_access: buffer_head c79d6480, force_copy 0
(revoke.c, 375): journal_cancel_revoke: journal_head c79d6480, cancelling
revoke
(transaction.c, 567): do_get_write_access: buffer_head c79d6480, force_copy 0
(revoke.c, 375): journal_cancel_revoke: journal_head c79d6480, cancelling
revoke
(transaction.c, 1104): journal_dirty_metadata: journal_head c79d6480
(transaction.c, 567): do_get_write_access: buffer_head c79d61e0, force_copy 0
(revoke.c, 375): journal_cancel_revoke: journal_head c79d61e0, cancelling
revoke
(transaction.c, 567): do_get_write_access: buffer_head c79d61e0, force_copy 0
(revoke.c, 375): journal_cancel_revoke: journal_head c79d61e0, cancelling
revoke
(transaction.c, 1104): journal_dirty_metadata: journal_head c79d61e0
(transaction.c, 567): do_get_write_access: buffer_head c79d6990, force_copy 0
(revoke.c, 375): journal_cancel_revoke: journal_head c79d6990, cancelling
revoke
(transaction.c, 567): do_get_write_access: buffer_head c79d6990, force_copy 0
(revoke.c, 375): journal_cancel_revoke: journal_head c79d6990, cancelling
revoke
(transaction.c, 1104): journal_dirty_metadata: journal_head c79d6990
(transaction.c, 1391): journal_stop: Handle c6cd0500 going down
(transaction.c, 102): start_this_handle: New handle c6cd0500 going live.
(transaction.c, 136): start_this_handle: Handle c6cd0500 stalling...
================
if you need full log - i can upload it to freevps.com.
i think races not in a diskquotas, but in ext3fs or jbd :-\
--
With best regards,
Alex
next prev parent reply other threads:[~2003-11-10 13:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-09 21:34 [BUG] journal handler reference count breaked and fs deadlocked Alex Lyashkov
2003-11-10 9:12 ` Alex Tomas
2003-11-10 9:55 ` Alex Lyashkov
2003-11-10 11:13 ` Jan Kara
2003-11-10 11:48 ` Alex Lyashkov
2003-11-10 11:50 ` Jan Kara
2003-11-10 13:07 ` Alex Lyashkov [this message]
2003-11-10 16:07 ` Alex Lyashkov
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=200311101507.20959.shadow@itt.net.ru \
--to=shadow@itt.net.ru \
--cc=akpm@osdl.org \
--cc=herbert@13thfloor.at \
--cc=jack@suse.cz \
--cc=linux-kernel@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