Okay, looks like I might have a *good* one here ... inode hang

Marc G. Fournier scrappy at hub.org
Wed Jul 2 20:56:18 PDT 2003


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


More information about the freebsd-stable mailing list