Skip site navigation (1)Skip section navigation (2)
Date:      24 Jun 1999 13:55:44 +0100
From:      Terry Glanfield <terry@program-products.co.uk>
To:        Greg Lehey <grog@lemis.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Multiple panics in ufs_vnoperate (3.2-STABLE)
Message-ID:  <eu2rxzrjj.fsf@program-products.co.uk>
In-Reply-To: Greg Lehey's message of "Thu, 24 Jun 1999 10:03:40 %2B0930"
References:  <9906231415.AA16160@program-products.co.uk> <19990624100339.F417@freebie.lemis.com>

next in thread | previous in thread | raw e-mail | index | archive | help

Greg Lehey <grog@lemis.com> writes:
> Do you still have the dumps?  The obvious thing to do here is to look
> at what's going on there.  A "page fault" under these circumstances
> suggests an uninitialized pointer (the fault address is 0x0 in one
> case and 0x63746572 in the other; the latter is interesting because it
> is the text "retc").

I've half a dozen dumps available still.

> The first thing you want to do is look at the stack frame where the
> problem occurred.  Do this:
> 
>   (kgdb) f 5
>   (kgdb) p *ap
> 
> This will be an iterative effort; it'll take a while to find it, but
> I'd guess you have a corrupted file on disk.

Thanks for the help Greg.  I assume we're looking for the inode of the
file.  Here's what I've found so far.

Cheers,
Terry.

PS Would you rather take this offline.

case 1:

Fatal trap 12: page fault while in kernel mode
fault virtual address	= 0x63746572
fault code		= supervisor read, page not present
instruction pointer	= 0x8:0xc0220658
stack pointer	        = 0x10:0xc33eae5c
frame pointer	        = 0x10:0xc33eae5c
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, def32 1, gran 1
processor eflags	= interrupt enabled, resume, IOPL = 0
current process		= 50328 (plug-gw)
interrupt mask		= 
trap number		= 12
panic: page fault

#5  0xc0220658 in ufs_vnoperate (ap=0xc33eae74)
    at ../../ufs/ufs/ufs_vnops.c:2299
#6  0xc0180ce8 in vn_stat (vp=0xc34dfc00, sb=0xc33eaf00, p=0xc335f260)
    at vnode_if.h:247
#7  0xc014fb79 in fstat (p=0xc335f260, uap=0xc33eaf94)
    at ../../kern/kern_descrip.c:585

(kgdb) f 5
#5  0xc0220658 in ufs_vnoperate (ap=0xc33eae74)
    at ../../ufs/ufs/ufs_vnops.c:2299
2299		return (VOCALL(ufs_vnodeop_p, ap->a_desc->vdesc_offset, ap));
(kgdb) p *ap
Cannot access memory at address 0x0.
(kgdb) p ap
$1 = (struct vop_generic_args *) 0x0
(kgdb) p *(struct vop_generic_args *)0xc33eae74
$2 = {a_desc = 0xc02aa254}
(kgdb) print $2.a_desc
$3 = (struct vnodeop_desc *) 0xc02aa254
(kgdb) print *$2.a_desc
$4 = {vdesc_offset = 5, vdesc_name = 0xc02686a0 "vop_getattr", 
  vdesc_flags = 0, vdesc_vp_offsets = 0xc02aa24c, vdesc_vpp_offset = -1, 
  vdesc_cred_offset = 12, vdesc_proc_offset = 16, 
  vdesc_componentname_offset = -1, vdesc_transports = 0x0}
(kgdb) 

case 2:

IdlePTD 3399680
initial pcb at 2c5670
panicstr: vm_fault: fault on nofault entry, addr: c1454000
panic messages:

#5  0xc0220656 in ufs_vnoperate (ap=0xc3454dc4)
    at ../../ufs/ufs/ufs_vnops.c:2298
#6  0xc01b2b7f in nqsrv_getlease (vp=0xc34d2740, duration=0xc3454e8c, flags=6, 
    slp=0xffffffff, procp=0xc3429200, nam=0x0, cachablep=0xc3454e88, 
    frev=0xc3454e80, cred=0xc08b9f80) at vnode_if.h:247
#7  0xc01b2fb0 in nqnfs_vop_lease_check (ap=0xc3454ec8)
    at ../../nfs/nfs_nqlease.c:363

(kgdb) f 5
#5  0xc0220656 in ufs_vnoperate (ap=0xc3454dc4)
    at ../../ufs/ufs/ufs_vnops.c:2298
2298	{
(kgdb) p *ap
Cannot access memory at address 0x0.
(kgdb) p ap
$1 = (struct vop_generic_args *) 0x0
(kgdb) p *(struct vop_generic_args *)0xc3454dc4
$2 = {a_desc = 0xc02aa254}
(kgdb) print $2.a_desc
$3 = (struct vnodeop_desc *) 0xc02aa254
(kgdb) print *$2.a_desc
$4 = {vdesc_offset = 5, vdesc_name = 0xc02686a0 "vop_getattr", 
  vdesc_flags = 0, vdesc_vp_offsets = 0xc02aa24c, vdesc_vpp_offset = -1, 
  vdesc_cred_offset = 12, vdesc_proc_offset = 16, 
  vdesc_componentname_offset = -1, vdesc_transports = 0x0}

case 3:

Fatal trap 12: page fault while in kernel mode
fault virtual address	= 0x0
fault code		= supervisor read, page not present
instruction pointer	= 0x8:0xc0220658
stack pointer	        = 0x10:0xc342ce5c
frame pointer	        = 0x10:0xc342ce5c
code segment		= base 0x0, limit 0xfffff, type 0x1b
			= DPL 0, pres 1, def32 1, gran 1
processor eflags	= interrupt enabled, resume, IOPL = 0
current process		= 1146 (inetd)
interrupt mask		= 
trap number		= 12
panic: page fault

#5  0xc0220658 in ufs_vnoperate (ap=0xc342ce74)
    at ../../ufs/ufs/ufs_vnops.c:2299
#6  0xc0180ce8 in vn_stat (vp=0xc33d5640, sb=0xc342cf00, p=0xc3429e60)
    at vnode_if.h:247
#7  0xc014fb79 in fstat (p=0xc3429e60, uap=0xc342cf94)
    at ../../kern/kern_descrip.c:585

(kgdb) f 5
#5  0xc0220658 in ufs_vnoperate (ap=0xc342ce74)
    at ../../ufs/ufs/ufs_vnops.c:2299
2299		return (VOCALL(ufs_vnodeop_p, ap->a_desc->vdesc_offset, ap));
(kgdb) p *(struct vop_generic_args *)0xc342ce74
$1 = {a_desc = 0xc02aa254}
(kgdb) print *$1.a_desc
$2 = {vdesc_offset = 5, vdesc_name = 0xc02686a0 "vop_getattr", 
  vdesc_flags = 0, vdesc_vp_offsets = 0xc02aa24c, vdesc_vpp_offset = -1, 
  vdesc_cred_offset = 12, vdesc_proc_offset = 16, 
  vdesc_componentname_offset = -1, vdesc_transports = 0x0}
(kgdb) 


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?eu2rxzrjj.fsf>