Subject: kern/19110: NULL mounts over NFS cause lock manager problems
To: None <gnats-bugs@gnats.netbsd.org>
From: Martin Husemann <martin@aprisoft.de>
List: netbsd-bugs
Date: 11/20/2002 12:20:14
>Number:         19110
>Category:       kern
>Synopsis:       NULL mounts over NFS cause lock manager problems
>Confidential:   no
>Severity:       critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Nov 20 03:21:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Martin Husemann
>Release:        NetBSD 1.6K
>Organization:
>Environment:
System: NetBSD nelly.aprisoft.de 1.6K NetBSD 1.6K (NELLY) #1: Wed Nov 20 09:51:28 CET 2002 martin@nelly.aprisoft.de:/usr/src/sys/arch/sparc64/compile/NELLY sparc64
Architecture: sparc64
Machine: sparc64
>Description:

I tried to do a sandbox build in pkgsrc with /usr/pkgsrc on NFS.
The pkgsrc/mk/bulk/mksandbox script creates a few NULL mounts of /usr/pkgsrc 
subdirectories into the sandbox directory. I build a pkg inside the sandbox
(in my case gmake) and the kernel paniced:

panic: lockmgr: locking against myself
kdb breakpoint at 113cde4
Stopped in pid 8455 (sh) at     cpu_Debugger+0x4:       nop
db> tr
lockmgr(ed78fb8, 2, ed78f00, f037bc0, 0, 0) at lockmgr+0x5f8
genfs_lock(f06f0c0, 10e520c, 100, ee931f0, 0, 0) at genfs_lock+0x10
vn_lock(ed78f00, 20002, 108, 2054600, 0, 0) at vn_lock+0x80
nfs_inactive(22db280, f0, 103ead0, 2054600, 0, 0) at nfs_inactive+0xb4
vrele(ebefe50, 21592c0, 183d2d8, 0, 180, 20e7058) at vrele+0xd8
layer_reclaim(0, f8, 10e85ac, ee931f0, 0, 0) at layer_reclaim+0x10c
vclean(ee02fb0, 8, ee931f0, 0, 0, 2050b00) at vclean+0x1a4
vgonel(ee02fb0, ee931f0, deadb, 209f600, 1816000, b4dd647c) at vgonel+0x44
getnewvnode(0, 217b400, 2054600, f06f6c8, ed979b3, 0) at getnewvnode+0x250
nfs_nget(217b400, 2051580, 1c, f06f7f8, 1f, 205157c) at nfs_nget+0x114
nfs_create(c, 200, 0, f06fa30, f06f828, 0) at nfs_create+0x1d9c
layer_bypass(f06fa30, 10e7d98, 20, 209f600, ec20310, eead010) at layer_bypass+0x11c
vn_open(f06fa60, 602, 1a4, e7a2720, 1b6, 0) at vn_open+0x10c
sys_open(0, f06fdd0, f06fdc0, 10df618, 0, eead010) at sys_open+0xa8
syscall(f06fed0, ffffffffffffffff, 4055ecec, 0, 1831800, 1831800) at syscall+0x26c
syscall_setup(22eaf8, 601, 1b6, 0, 0, 0) at syscall_setup+0xec


>How-To-Repeat:

mount -t nfs server:/usr/pkgsrc /usr/pkgsrc
mount -t null /usr/pkgsrc /tmp/sandbox
do some stuff in /tmp/sandbox

>Fix:
n/a
>Release-Note:
>Audit-Trail:
>Unformatted: