* 2.6.11, nfsd, log_do_checkpoint()
@ 2005-04-02 0:27 John Madden
2005-04-04 9:38 ` Jan Kara
0 siblings, 1 reply; 3+ messages in thread
From: John Madden @ 2005-04-02 0:27 UTC (permalink / raw)
To: linux-kernel
I woke up to a mostly-dead PE1850 this morning:
Message from syslogd@storage at Fri Apr 1 06:19:14 2005 ...
storage kernel: Assertion failure in log_do_checkpoint() at
fs/jbd/checkpoint.c:365: "drop_count != 0 || cleanup_ret != 0"
Message from syslogd@storage at Fri Apr 1 06:19:14 2005 ...
storage kernel: invalid operand: 0000 [1] SMP
Full error:
Assertion failure in log_do_checkpoint() at fs/jbd/checkpoint.c:365:
"drop_count != 0 || cleanup_ret != 0"
----------- [cut here ] --------- [please bite here ] ---------
Kernel BUG at checkpoint:365
invalid operand: 0000 [1] SMP
CPU 1
Modules linked in:
Pid: 212, comm: nfsd Not tainted 2.6.11-rc5
RIP: 0010:[<ffffffff801eb9b5>] <ffffffff801eb9b5>{log_do_checkpoint+357}
RSP: 0000:ffff81003e6e99a8 EFLAGS: 00010296
RAX: 000000000000006e RBX: 0000000000000000 RCX: ffffffff803bbdc8
RDX: ffffffff803bbdc8 RSI: 0000000000000246 RDI: ffffffff803bbdc0
RBP: 0000000000000000 R08: 0000000000000000 R09: 00000000000003c8
R10: ffff81003f0ca4c0 R11: 0000000000000000 R12: 0000000000000000
R13: ffff81003eef5e00 R14: ffff81002fee1f50 R15: ffff81003eef5f5c
FS: 0000000000000000(0000) GS:ffffffff8044d600(0000) knlGS:0000000000000000
CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b
CR2: 00000000556b29e0 CR3: 000000003e263000 CR4: 00000000000006e0
Process nfsd (pid: 212, threadinfo ffff81003e6e8000, task ffff81003e6e77f0)
Stack: 0000000000000246 2f3260b0802e1b50 ffff81001e1c09c0 0000000000000000
00000000ffffffe0 0000000000000000 000000000000003b ffffffff802e0d99
ffff81003e6e9a8c 0000000000000000
Call Trace:<ffffffff802e0d99>{sock_alloc_send_pskb+121}
<ffffffff802ff0d7>{ip_append_data+871}
<ffffffff801d797c>{ext3_get_block_handle+220}
<ffffffff80170fe3>{bh_lru_install+275}
<ffffffff801710d9>{__find_get_block+217}
<ffffffff80171101>{__getblk+17}
<ffffffff801d7e18>{ext3_getblk+200}
<ffffffff801eb3f6>{__log_wait_for_space+166}
<ffffffff801e732f>{start_this_handle+879}
<ffffffff801e745e>{journal_start+158}
<ffffffff801dd811>{ext3_create+49} <ffffffff8017d83c>{vfs_create+140}
<ffffffff802113d5>{nfsd_create_v3+869}
<ffffffff80217c9c>{nfsd3_proc_create+332}
<ffffffff8020cda0>{nfsd_dispatch+272}
<ffffffff8033aa7e>{svc_process+958}
<ffffffff8020c930>{nfsd+0} <ffffffff8020cb10>{nfsd+480}
<ffffffff8012afeb>{schedule_tail+11} <ffffffff8010ddab>{child_rip+8}
<ffffffff8020c930>{nfsd+0} <ffffffff8020c930>{nfsd+0}
<ffffffff8010dda3>{child_rip+0}
Code: 0f 0b 0c 69 36 80 ff ff ff ff 6d 01 49 8b 75 60 48 3b 74 24
RIP <ffffffff801eb9b5>{log_do_checkpoint+357} RSP <ffff81003e6e99a8>
nfsd was serving out a pretty heavily-used (2.5-million page web site) ext3
partition on the 1850's built-in LSI/MPT controller. I'm able to duplicate
this somewhat consistently by putting nfsd under heavy load (say, by deleting
20,000 files from a directory).
(Please Cc me on replies, I'm not subscribed.)
Thanks,
John
--
# John Madden weez@freelists.org: http://www.nerdarium.com
# FreeLists: Free mailing lists for all: http://www.freelists.org
# Linux, Apache, Perl and C: All the best things in life are free!
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 2.6.11, nfsd, log_do_checkpoint()
2005-04-02 0:27 2.6.11, nfsd, log_do_checkpoint() John Madden
@ 2005-04-04 9:38 ` Jan Kara
2005-04-04 12:55 ` John Madden
0 siblings, 1 reply; 3+ messages in thread
From: Jan Kara @ 2005-04-04 9:38 UTC (permalink / raw)
To: John Madden; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 1215 bytes --]
Hello!
> I woke up to a mostly-dead PE1850 this morning:
>
> Message from syslogd@storage at Fri Apr 1 06:19:14 2005 ...
> storage kernel: Assertion failure in log_do_checkpoint() at
> fs/jbd/checkpoint.c:365: "drop_count != 0 || cleanup_ret != 0"
>
> Message from syslogd@storage at Fri Apr 1 06:19:14 2005 ...
> storage kernel: invalid operand: 0000 [1] SMP
>
> Full error:
>
> Assertion failure in log_do_checkpoint() at fs/jbd/checkpoint.c:365:
> "drop_count != 0 || cleanup_ret != 0"
Could you try running a kernel with the attached patch? Are you able to
reproduce the problem even with the patch?
> ----------- [cut here ] --------- [please bite here ] ---------
> Kernel BUG at checkpoint:365
> invalid operand: 0000 [1] SMP
> CPU 1
> Modules linked in:
> Pid: 212, comm: nfsd Not tainted 2.6.11-rc5
<snip>
> nfsd was serving out a pretty heavily-used (2.5-million page web site) ext3
> partition on the 1850's built-in LSI/MPT controller. I'm able to duplicate
> this somewhat consistently by putting nfsd under heavy load (say, by deleting
> 20,000 files from a directory).
>
> (Please Cc me on replies, I'm not subscribed.)
Honza
--
Jan Kara <jack@suse.cz>
SuSE CR Labs
[-- Attachment #2: ext3-release-race.patch --]
[-- Type: text/plain, Size: 1616 bytes --]
linux-2.6.11-ext3-release-race.patch:
transaction.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
--- NEW FILE linux-2.6.11-ext3-release-race.patch ---
--- linux-2.6.9/fs/jbd/transaction.c.=K0002=.orig
+++ linux-2.6.9/fs/jbd/transaction.c
@@ -1812,10 +1812,10 @@ static int journal_unmap_buffer(journal_
JBUFFER_TRACE(jh, "checkpointed: add to BJ_Forget");
ret = __dispose_buffer(jh,
journal->j_running_transaction);
+ journal_put_journal_head(jh);
spin_unlock(&journal->j_list_lock);
jbd_unlock_bh_state(bh);
spin_unlock(&journal->j_state_lock);
- journal_put_journal_head(jh);
return ret;
} else {
/* There is no currently-running transaction. So the
@@ -1826,10 +1826,10 @@ static int journal_unmap_buffer(journal_
JBUFFER_TRACE(jh, "give to committing trans");
ret = __dispose_buffer(jh,
journal->j_committing_transaction);
+ journal_put_journal_head(jh);
spin_unlock(&journal->j_list_lock);
jbd_unlock_bh_state(bh);
spin_unlock(&journal->j_state_lock);
- journal_put_journal_head(jh);
return ret;
} else {
/* The orphan record's transaction has
@@ -1850,10 +1850,10 @@ static int journal_unmap_buffer(journal_
journal->j_running_transaction);
jh->b_next_transaction = NULL;
}
+ journal_put_journal_head(jh);
spin_unlock(&journal->j_list_lock);
jbd_unlock_bh_state(bh);
spin_unlock(&journal->j_state_lock);
- journal_put_journal_head(jh);
return 0;
} else {
/* Good, the buffer belongs to the running transaction.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 2.6.11, nfsd, log_do_checkpoint()
2005-04-04 9:38 ` Jan Kara
@ 2005-04-04 12:55 ` John Madden
0 siblings, 0 replies; 3+ messages in thread
From: John Madden @ 2005-04-04 12:55 UTC (permalink / raw)
To: Jan Kara; +Cc: linux-kernel
> > Assertion failure in log_do_checkpoint() at fs/jbd/checkpoint.c:365:
> > "drop_count != 0 || cleanup_ret != 0"
>
> Could you try running a kernel with the attached patch? Are you able to
> reproduce the problem even with the patch?
Funny thing: Assuming this was an ext3 problem, I moved the data to a reiserfs
partition (with so many files, performance is an issue anyway) since the box
is pretty critical. I'll try to sneak some downtime in to try this out, but
I can't make any promises... The problem should be fairly easy to replicate
in a lab though, if you're interested.
John
--
# John Madden weez@freelists.org: http://www.nerdarium.com
# FreeLists: Free mailing lists for all: http://www.freelists.org
# Linux, Apache, Perl and C: All the best things in life are free!
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-04-04 12:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-02 0:27 2.6.11, nfsd, log_do_checkpoint() John Madden
2005-04-04 9:38 ` Jan Kara
2005-04-04 12:55 ` John Madden
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®