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 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.