Number: 38732
Category: kern
Synopsis: proplib has locking issues
Confidential: no
Severity: critical
Priority: high
Responsible: kern-bug-people
State: open
Class: sw-bug
Submitter-Id: net
Arrival-Date: Fri May 23 18:40:00 +0000 2008
Originator: oster%netbsd.org@localhost
Release: NetBSD 4.99.63
Organization:
Environment:
System: NetBSD hapi 4.99.63 NetBSD 4.99.63 (GENERICLD) #0: Thu May 22 15:58:15
CST 2008 root@hapi:/u1/builds/build203/src/sys/arch/amd64/compile/GENERICLD
amd64
Architecture: amd64
Machine: amd64
Description:
proplib seems to have some locking issues...
Reader / writer lock error: lockdebug_wantlock: locking against myself
lock address : 0xffff800064a11fa0 type : sleep/adaptive
shared holds : 1 exclusive: 0
shares wanted: 1 exclusive: 0
current cpu : 3 last held: 3
current lwp : 0xffff80007568b800 last held: 0xffff80007568b800
last locked : 0xffffffff8071c607 unlocked : 0xffffffff8071c645
initialized : 0xffffffff8071d0af
owner/count : 0x0000000000000010 flags : 0x0000000000000008
Turnstile chain at 0xffffffff80c6ee00.
=> No active turnstile for this lock.
panic: LOCKDEBUG
Stopped in pid 2085.1 (envstat) at netbsd:breakpoint+0x5: leave
db{3}> tr
breakpoint() at netbsd:breakpoint+0x5
panic() at netbsd:panic+0x260
lockdebug_abort1() at netbsd:lockdebug_abort1+0xd3
rw_vector_enter() at netbsd:rw_vector_enter+0x2f1
prop_dictionary_iterator() at netbsd:prop_dictionary_iterator+0x77
_prop_dictionary_externalize() at netbsd:_prop_dictionary_externalize+0xba
prop_dictionary_externalize() at netbsd:prop_dictionary_externalize+0x40
_prop_object_copyout_ioctl() at netbsd:_prop_object_copyout_ioctl+0x12e
sysmonioctl_envsys() at netbsd:sysmonioctl_envsys+0x4da
VOP_IOCTL() at netbsd:VOP_IOCTL+0x6b
vn_ioctl() at netbsd:vn_ioctl+0x6d
sys_ioctl() at netbsd:sys_ioctl+0x134
syscall() at netbsd:syscall+0x9a
db{3}>
How-To-Repeat:
run GENERIC+LOCKDEBUG/DEBUG/DIAGNOSTIC kernel on amd64
do something like 'envstat -d mfi0'
*boom*
Additional details available upon request.
Fix: