From owner-freebsd-stable@FreeBSD.ORG Wed Jul 2 20:56:17 2003 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A88E437B401; Wed, 2 Jul 2003 20:56:17 -0700 (PDT) Received: from hub.org (hub.org [64.117.225.220]) by mx1.FreeBSD.org (Postfix) with ESMTP id CEB6A43FE9; Wed, 2 Jul 2003 20:56:16 -0700 (PDT) (envelope-from scrappy@hub.org) Received: from hub.org (unknown [64.117.225.220]) by hub.org (Postfix) with ESMTP id 408896BE049; Thu, 3 Jul 2003 00:56:15 -0300 (ADT) Date: Thu, 3 Jul 2003 00:56:14 -0300 (ADT) From: "Marc G. Fournier" To: David Schultz In-Reply-To: <20030703033117.GA7647@HAL9000.homeunix.com> Message-ID: <20030703005047.B67063@hub.org> References: <20030701155450.J67063@hub.org> <20030702073306.GA3324@HAL9000.homeunix.com> <20030703033117.GA7647@HAL9000.homeunix.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-stable@FreeBSD.org cc: Ted Mittelstaedt Subject: Re: Okay, looks like I might have a *good* one here ... inode hang X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jul 2003 03:56:18 -0000 On Wed, 2 Jul 2003, David Schultz wrote: > On Wed, Jul 02, 2003, Marc G. Fournier wrote: > > On Wed, 2 Jul 2003, David Schultz wrote: > > > > > On Tue, Jul 01, 2003, Marc G. Fournier wrote: > > > [...] > > > > and I have a vmcore to work on here !! :) > > > > > > Yes, this does look promising. Can you look at > > > *(struct lock *)0x8a4ef300 (the lock the second > > > process is trying to acquire) also? > > > > (kgdb) print *(struct lock *)0x8a4ef300 > > $2 = {lk_interlock = {lock_data = 0}, lk_flags = 2098240, lk_sharecount = 0, lk_waitcount = 2, lk_exclusivecount = 1, lk_prio = 8, lk_wmesg = 0x80263d4a "inode", lk_timo = 6, > > lk_lockholder = 75285} > > Aha! This points off to another process (pid 75285). Can you > follow that one, too. Maybe the trail will simply lead back to > unionfs... 'K, how about a loop? proc 75285: (kgdb) proc 75285 (kgdb) bt #0 mi_switch () at machine/globals.h:119 #1 0x8014a1f9 in tsleep (ident=0x8a572500, priority=8, wmesg=0x80263d4a "inode", timo=0) at /usr/src/sys/kern/kern_synch.c:479 #2 0x80141507 in acquire (lkp=0x8a572500, extflags=16777280, wanted=1536) at /usr/src/sys/kern/kern_lock.c:147 #3 0x8014179c in lockmgr (lkp=0x8a572500, flags=16842754, interlkp=0xbda7e42c, p=0xc91bfac0) at /usr/src/sys/kern/kern_lock.c:355 #4 0x80172b73 in vop_stdlock (ap=0xc91f9c3c) at /usr/src/sys/kern/vfs_default.c:256 #5 0x801f0955 in ufs_vnoperate (ap=0xc91f9c3c) at /usr/src/sys/ufs/ufs/ufs_vnops.c:2376 #6 0x8017d450 in vn_lock (vp=0xbda7e3c0, flags=65538, p=0xc91bfac0) at vnode_if.h:861 #7 0x80175d83 in vget (vp=0xbda7e3c0, flags=2, p=0xc91bfac0) at /usr/src/sys/kern/vfs_subr.c:1539 #8 0x80170c1f in vfs_cache_lookup (ap=0xc91f9ce4) at /usr/src/sys/kern/vfs_cache.c:494 #9 0x801f0955 in ufs_vnoperate (ap=0xc91f9ce4) at /usr/src/sys/ufs/ufs/ufs_vnops.c:2376 #10 0x801848ea in union_lookup1 (udvp=0xbde68d80, pdvp=0xc91f9d40, vpp=0xc91f9d44, cnp=0xc91f9ea4) at vnode_if.h:52 #11 0x80184b58 in union_lookup (ap=0xc91f9e00) at /usr/src/sys/miscfs/union/union_vnops.c:359 #12 0x80173d29 in lookup (ndp=0xc91f9e7c) at vnode_if.h:52 #13 0x80173824 in namei (ndp=0xc91f9e7c) at /usr/src/sys/kern/vfs_lookup.c:153 #14 0x80179ae9 in stat (p=0xc91bfac0, uap=0xc91f9f80) at /usr/src/sys/kern/vfs_syscalls.c:1788 #15 0x8023c485 in syscall2 (frame={tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 135990382, tf_esi = 135990320, tf_ebp = 2143287536, tf_isp = -920674348, tf_ebx = 135990382, tf_edx = 135983160, tf_ecx = -64, tf_eax = 188, tf_trapno = 8, tf_err = 2, tf_eip = 672125504, tf_cs = 31, tf_eflags = 534, tf_esp = 2143287492, tf_ss = 47}) at /usr/src/sys/i386/i386/trap.c:1175 #16 0x802299ab in Xint0x80_syscall () (kgdb) print *(struct lock *)0x8a572500 $8 = {lk_interlock = {lock_data = 0}, lk_flags = 2098240, lk_sharecount = 0, lk_waitcount = 1, lk_exclusivecount = 1, lk_prio = 8, lk_wmesg = 0x80263d4a "inode", lk_timo = 6, lk_lockholder = 67897} (kgdb) frame 13 (kgdb) print *(struct nameidata *) ndp $12 = {ni_dirp = 0x81b0c30 "/usr/local/www/developer.postgresql.org/www/images/topleft.png", ni_segflg = UIO_USERSPACE, ni_startdir = 0x0, ni_rootdir = 0xbde68a80, ni_topdir = 0xbde68a80, ni_vp = 0x0, ni_dvp = 0xbde695c0, ni_pathlen = 53, ni_next = 0xc348bc0a "/www/developer.postgresql.org/www/images/topleft.png", ni_loopcnt = 0, ni_cnd = {cn_nameiop = 0, cn_flags = 16588, cn_proc = 0xc91bfac0, cn_cred = 0x89998580, cn_pnbuf = 0xc348bc00 "/usr/local/www/developer.postgresql.org/www/images/topleft.png", cn_nameptr = 0xc348bc05 "local/www/developer.postgresql.org/www/images/topleft.png", cn_namelen = 5, cn_consume = 0}} proc 67897: (kgdb) proc 67897 (kgdb) bt #0 mi_switch () at machine/globals.h:119 #1 0x8014a1f9 in tsleep (ident=0x8a4ef300, priority=8, wmesg=0x80263d4a "inode", timo=0) at /usr/src/sys/kern/kern_synch.c:479 #2 0x80141507 in acquire (lkp=0x8a4ef300, extflags=16777280, wanted=1536) at /usr/src/sys/kern/kern_lock.c:147 #3 0x8014179c in lockmgr (lkp=0x8a4ef300, flags=16842754, interlkp=0xc43205ac, p=0xbea5e1a0) at /usr/src/sys/kern/kern_lock.c:355 #4 0x8017ee4d in null_lock (ap=0xbecb0cfc) at /usr/src/sys/miscfs/nullfs/null_vnops.c:614 #5 0x8017d450 in vn_lock (vp=0xc4320540, flags=65538, p=0xbea5e1a0) at vnode_if.h:861 #6 0x80175e5d in vrele (vp=0xc4320540) at /usr/src/sys/kern/vfs_subr.c:1601 #7 0x80173f40 in lookup (ndp=0xbecb0ec4) at /usr/src/sys/kern/vfs_lookup.c:557 #8 0x80173824 in namei (ndp=0xbecb0ec4) at /usr/src/sys/kern/vfs_lookup.c:153 #9 0x8017c867 in vn_open (ndp=0xbecb0ec4, fmode=1, cmode=0) at /usr/src/sys/kern/vfs_vnops.c:138 #10 0x8017899c in open (p=0xbea5e1a0, uap=0xbecb0f80) at /usr/src/sys/kern/vfs_syscalls.c:1029 #11 0x8023c485 in syscall2 (frame={tf_fs = 47, tf_es = 2143223855, tf_ds = 2143223855, tf_edi = 2143281680, tf_esi = 134776832, tf_ebp = 2143248752, tf_isp = -1093988396, tf_ebx = 2143281680, tf_edx = 2143281680, tf_ecx = 0, tf_eax = 5, tf_trapno = 0, tf_err = 2, tf_eip = 672128440, tf_cs = 31, tf_eflags = 582, tf_esp = 2143248724, tf_ss = 47}) at /usr/src/sys/i386/i386/trap.c:1175 #12 0x802299ab in Xint0x80_syscall () (kgdb) print *(struct lock *)0x8a4ef300 $9 = {lk_interlock = {lock_data = 0}, lk_flags = 2098240, lk_sharecount = 0, lk_waitcount = 2, lk_exclusivecount = 1, lk_prio = 8, lk_wmesg = 0x80263d4a "inode", lk_timo = 6, lk_lockholder = 75285} (kgdb) frame 8 (kgdb) print *(struct nameidata *) 0xbecb0ec4 $11 = {ni_dirp = 0x7fbfe210 "usr/local/www/archives.postgresql.org/www/pgadmin-hackers/2003-06/msg00016.php", ni_segflg = UIO_USERSPACE, ni_startdir = 0x0, ni_rootdir = 0xba24ae00, ni_topdir = 0x0, ni_vp = 0xc4a58ac0, ni_dvp = 0xc4320540, ni_pathlen = 69, ni_next = 0xc58ac009 "/www/archives.postgresql.org/www/pgadmin-hackers/2003-06/msg00016.php", ni_loopcnt = 0, ni_cnd = {cn_nameiop = 0, cn_flags = 2113604, cn_proc = 0xbea5e1a0, cn_cred = 0x8ce0ed00, cn_pnbuf = 0xc58ac000 "usr/local/www/archives.postgresql.org/www/pgadmin-hackers/2003-06/msg00016.php", cn_nameptr = 0xc58ac00a "www/archives.postgresql.org/www/pgadmin-hackers/2003-06/msg00016.php", cn_namelen = 5, cn_consume = 0}}