NetBSD Problem Report #21346

Received: (qmail 16508 invoked by uid 605); 28 Apr 2003 01:09:56 -0000
Message-Id: <200304280109.h3S19dR1001175@linus.ics.es.osaka-u.ac.jp>
Date: Mon, 28 Apr 2003 10:09:39 +0900 (JST)
From: kawamoto@tenjin.org
Sender: gnats-bugs-owner@netbsd.org
Reply-To: kawamoto@tenjin.org
To: gnats-bugs@gnats.netbsd.org
Subject: kernel panics with union over nullfs over ffs (panic: lockmgr: locking against myself)
X-Send-Pr-Version: 3.95

>Number:         21346
>Category:       kern
>Synopsis:       kernel panics with union over nullfs over ffs (panic: lockmgr: locking against myself)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    chs
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Apr 28 01:10:01 +0000 2003
>Closed-Date:    
>Last-Modified:  Sun Jan 28 18:22:08 +0000 2007
>Originator:     KAWAMOTO Yosihisa
>Release:        NetBSD 1.6R
>Organization:
	tenjin.org
>Environment:
System: NetBSD linus.ics.es.osaka-u.ac.jp 1.6R NetBSD 1.6R (LINUS) #194: Mon Apr 14 06:06:19 JST 2003 kawamoto@linus.ics.es.osaka-u.ac.jp:/usr/src/sys/arch/i386/compile/obj/LINUS i386
Architecture: i386
Machine: i386

>Description:

	The kernel does panic with rather heavy filesystem I/O.
	(I did kernel build before this panic example.)
	Accessed filesystem is union_fs over null_fs over ffs.
	Kernel messages are followings:

panic: lockmgr: locking against myself
syncing disks... panic: lockmgr: locking against myself

dumping to dev 0,1 offset 1803399
dump 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 succeeded


rebooting...


	The kernel trace is following:

bash-2.05b# gdb
GNU gdb 5.0nb1
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386--netbsdelf".
(gdb) exec-file netbsd.6
(gdb) symbol-file /netbsd.gdb
Reading symbols from /netbsd.gdb...Deprecated bfd_read called at /usr/src/gnu/dist/toolchain/gdb/dbxread.c line 2638 in elfstab_build_psymtabs
Deprecated bfd_read called at /usr/src/gnu/dist/toolchain/gdb/dbxread.c line 976 in fill_symbuf
done.
(gdb) target kcore netbsd.6.core
panic: lockmgr: locking against myself
#0  0x1 in ?? ()
(gdb) set height 0
(gdb) where
#0  0x1 in ?? ()
#1  0xc02cc1c6 in cpu_reboot (howto=260, bootstr=0x0)
    at /usr/src/sys/arch/i386/i386/machdep.c:875
#2  0xc02668cd in panic () at /usr/src/sys/kern/subr_prf.c:246
#3  0xc0251095 in lockmgr (lkp=0xcb07ddb8, flags=65554, interlkp=0xcb07dd4c)
    at /usr/src/sys/kern/kern_lock.c:683
#4  0xc028da54 in genfs_lock (v=0xcb4a48c4)
    at /usr/src/sys/miscfs/genfs/genfs_vnops.c:328
#5  0xc028c842 in VOP_LOCK (vp=0xcb07dd4c, flags=65554)
    at /usr/src/sys/kern/vnode_if.c:1112
#6  0xc028bfd5 in vn_lock (vp=0xcb07dd4c, flags=65554)
    at /usr/src/sys/kern/vfs_vnops.c:751
#7  0xc02856cc in vget (vp=0xcb07dd4c, flags=65554)
    at /usr/src/sys/kern/vfs_subr.c:1193
#8  0xc0217087 in ffs_sync (mp=0xc06a5800, waitfor=2, cred=0xc07b1c80,
    p=0xcb384d1c) at /usr/src/sys/ufs/ffs/ffs_vfsops.c:1262
#9  0xc0287d2e in sys_sync (l=0xcb1e7d84, v=0x0, retval=0x0)
    at /usr/src/sys/kern/vfs_syscalls.c:591
#10 0xc0286cad in vfs_shutdown () at /usr/src/sys/kern/vfs_subr.c:2521
#11 0xc02cc19b in cpu_reboot (howto=256, bootstr=0x0)
    at /usr/src/sys/arch/i386/i386/machdep.c:862

#12 0xc02668cd in panic () at /usr/src/sys/kern/subr_prf.c:246
#13 0xc0251095 in lockmgr (lkp=0xcb07ddb8, flags=65538, interlkp=0xcb1c0ad8)
    at /usr/src/sys/kern/kern_lock.c:683
#14 0xc0290e60 in layer_lock (v=0xcb4a4ac4)
    at /usr/src/sys/miscfs/genfs/layer_vnops.c:624
#15 0xc028c842 in VOP_LOCK (vp=0xcb1c0ad8, flags=65538)
    at /usr/src/sys/kern/vnode_if.c:1112
#16 0xc028bfd5 in vn_lock (vp=0xcb1c0ad8, flags=65538)
    at /usr/src/sys/kern/vfs_vnops.c:751
#17 0xc0285882 in vrele (vp=0xcb1c0ad8) at /usr/src/sys/kern/vfs_subr.c:1311
#18 0xc01b92ad in union_freevp (vp=0xcb0afa2c)
    at /usr/src/sys/fs/union/union_subr.c:571
#19 0xc01bbebc in union_reclaim (v=0xcb4a4ba4)
    at /usr/src/sys/fs/union/union_vnops.c:1680
#20 0xc028c812 in VOP_RECLAIM (vp=0xcb0afa2c, p=0xcb384d1c)
    at /usr/src/sys/kern/vnode_if.c:1083
#21 0xc0285a2f in vclean (vp=0xcb0afa2c, flags=8, p=0xcb384d1c)
    at /usr/src/sys/kern/vfs_subr.c:1584
#22 0xc0285b6a in vgonel (vp=0xcb0afa2c, p=0xcb384d1c)
    at /usr/src/sys/kern/vfs_subr.c:1698
#23 0xc0284928 in getnewvnode (tag=VT_UFS, mp=0xc06a5800, vops=0xc0652100,
    vpp=0xcb4a4cbc) at /usr/src/sys/kern/vfs_subr.c:532
#24 0xc02171ef in ffs_vget (mp=0xc06a5800, ino=1458569, vpp=0xcb4a4d68)
    at /usr/src/sys/ufs/ffs/ffs_vfsops.c:1330
#25 0xc022f6e3 in ufs_lookup (v=0xcb4a4da0)
    at /usr/src/sys/ufs/ufs/ufs_lookup.c:595
#26 0xc028c0e1 in VOP_LOOKUP (dvp=0xcb07dd4c, vpp=0xcb4a4ea8, cnp=0xcb4a4ebc)
    at /usr/src/sys/kern/vnode_if.c:161
#27 0xc0283ed4 in lookup (ndp=0xcb4a4e98) at /usr/src/sys/kern/vfs_lookup.c:505
#28 0xc0283b31 in namei (ndp=0xcb4a4e98) at /usr/src/sys/kern/vfs_lookup.c:168
#29 0xc0289d66 in sys___lstat13 (l=0xcb1e7d84, v=0xcb4a4f80, retval=0xcb4a4f78)
    at /usr/src/sys/kern/vfs_syscalls.c:2031
#30 0xc02d6fb3 in syscall_plain (frame={tf_gs = 31, tf_fs = 31,
      tf_es = -1078001633, tf_ds = -1078001633, tf_edi = 135092048,
      tf_esi = 0, tf_ebp = -1077939628, tf_ebx = -1077939724,
      tf_edx = -1077939092, tf_ecx = -1077939092, tf_eax = 280, tf_trapno = 3,
      tf_err = 2, tf_eip = 1210725839, tf_cs = 23, tf_eflags = 663,
      tf_esp = -1077939768, tf_ss = 31, tf_vm86_es = 0, tf_vm86_ds = 0,
      tf_vm86_fs = 0, tf_vm86_gs = 0})
    at /usr/src/sys/arch/i386/i386/syscall.c:156
#31 0xc0100c5b in syscall1 ()
can not access 0xbfbff254, invalid translation (invalid PDE)
can not access 0xbfbff254, invalid translation (invalid PDE)
Cannot access memory at address 0xbfbff254
(gdb) quit

>How-To-Repeat:
	This is not a certain way, but my kernel did panic some time.
	Mount a union fs on a null fs on a ffs like following, and
	compile kernels.

bash-2.05b# mount
/dev/wd0a on / type ffs (soft dependencies, local)
/dev/wd0f on /var type ffs (soft dependencies, local)
/dev/wd0e on /usr type ffs (read-only, local)
/dev/wd0g on /amd/home/linus type ffs (soft dependencies, NFS exported, local)
kernfs on /kern type kernfs (local)
/var/usr/src on /usr/src type null (read-only, local)
<above>:/var/src on /usr/src type union (local)
/var/usr/src on /xcast type null (read-only, local)
<above>:/var/xcast on /xcast type union (local)
/var/usr/pkgsrc on /usr/pkgsrc type null (read-only, local)
<above>:/var/pkgsrc on /usr/pkgsrc type union (local)
/var/usr/xsrc on /usr/xsrc type null (read-only, local)
<above>:/var/xsrc on /usr/xsrc type union (local)
pid255@linus:/net on /net type nfs (hidden)


>Fix:
	Sorry, I don't know.
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: kern-bug-people->chs
Responsible-Changed-By: chs@netbsd.org
Responsible-Changed-When: Sun, 28 Jan 2007 18:22:08 +0000
Responsible-Changed-Why:
I'm looking at vnode-locking problems.


>Unformatted:
 	kernel updated at Apr 13 2003

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.