Note: the rawhide RPMs does have this patch applied/
Steve Lord wrote:
> > On Tue, Jun 26, 2001 at 11:46:12AM +1000,
> > Keith Owens wrote:
> >
> > > Capture the serial console output. 'bt' to trace the failing
> > > task is probably all you need at this stage. For an oops it
> > > is usually only the current task that is interesting. For
> > > loops and hangs, 'ps' and 'bta' are useful to get backtrace
> > > for all processes.
> >
> > Okay...
> >
> > This happened during... either test 13 or 14 or 15 of the checks
> > in the cmd/xfstests directory. (Unfortunately, the screen saver
> > on the machine's console appears to have kicked in
> > overnight....(?))
> >
> > Will anything else from kdb be useful to have before I reboot
> > and try again?
>
> OK, I know what this is - thanks for the stack trace, you have a highmem
> system correct? There was a core kernel bug which xfs appeared to be
> able to find. I will check with Eric that the fix goes into the 1.0.1
> code before we finalize it. This patch (cut and pasted, so hand apply)
> should fix it:
>
> --- S6-pre2/fs/buffer.c Fri Jun 8 18:29:03 2001
> +++ /tmp/buffer.c Tue Jun 12 13:17:57 2001
> @@ -646,8 +646,8 @@
> /* Another device? */
> if (bh->b_dev != dev)
> continue;
> - /* Part of a mapping? */
> - if (bh->b_page->mapping)
> + /* Not hashed? */
> + if (!bh->b_pprev)
> continue;
> if (buffer_locked(bh)) {
> atomic_inc(&bh->b_count);
> @@ -710,6 +710,8 @@
> for (i = nr_buffers_type[nlist]; i > 0 ; bh = bh_next, i--) {
> bh_next = bh->b_next_free;
> if (bh->b_dev != dev || bh->b_size == size)
> + continue;
> + if (!bh->b_pprev)
> continue;
> if (buffer_locked(bh)) {
> atomic_inc(&bh->b_count);
>
> Steve
>
> >
> > Andrew Klaassen
> >
> >
> > Unable to handle kernel NULL pointer dereference at virtual address 00000000
> > printing eip:
> > c0156c6a
> > pgd entry f68ff000: 0000000000000000
> > pmd entry f68ff000: 0000000000000000
> > ... pmd not present!
> >
> > Entering kdb (current=0xf68b8000, pid 649) Oops: Oops
> > due to oops @ 0xc0156c6a
> > eax = 0x00000000 ebx = 0x00001000 ecx = 0x00000400 edx = 0xe6be8e60
> > esi = 0x00000001 edi = 0x00000000 esp = 0xf68b9ddc eip = 0xc0156c6a
> > ebp = 0x00003dbd xss = 0x00000018 xcs = 0x00000010 eflags = 0x00010246
> > xds = 0xe6be0018 xes = 0x00000018 origeax = 0xffffffff ®s = 0xf68b9da8
> > kdb> bt
> > EBP EIP Function(args)
> > 0x00003dbd 0xc0156c6a ext2_alloc_branch+0xf2 (0xf6b6a040, 0x2, 0x3dbc,
> > 0xf68b
> > 9e)
> > kernel .text 0xc0100000 0xc0156b78 0xc0156d9c
> > 0xc01570d0 ext2_get_block+0x334 (0xf6b6a040, 0xc, 0xe6bd75a0,
> > 0x1,
> > 0)
> > kernel .text 0xc0100000 0xc0156d9c 0xc0157298
> > 0xc0135e21 __block_prepare_write+0x139 (0xf6b6a040, 0xc209bd48,
> > 0x
> > 0,)
> > kernel .text 0xc0100000 0xc0135ce8 0xc0135fe4
> > 0xc0136776 block_prepare_write+0x22 (0xc209bd48, 0x0, 0x60,
> > 0xc015
> > 6d)
> > kernel .text 0xc0100000 0xc0136754 0xc01367c4
> > 0xc01574b1 ext2_prepare_write+0x19 (0xf6978860, 0xc209bd48, 0x0, > > 0
> > x6)
> > kernel .text 0xc0100000 0xc0157498 0xc01574b8
> > 0xc0127c39 generic_file_write+0x401 (0xf6978860, 0x4001900c,
> > 0x60,
> > 0)
> > kernel .text 0xc0100000 0xc0127838 0xc0127ec8
> > 0xc01338ba sys_write+0x8e (0x2, 0x40019000, 0x6c, 0x6c,
> > 0x40019000
> > )
> > kernel .text 0xc0100000 0xc013382c 0xc01338f0
> > 0xc0108edb system_call+0x33
> > kernel .text 0xc0100000 0xc0108ea8 0xc0108ee0
--
Russell Cattelan
cattelan@xxxxxxxxxxx
|