NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/38732: proplib locking error



oster%netbsd.org@localhost wrote:
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:

See http://mail-index.netbsd.org/port-amd64/2008/05/19/msg000275.html
and follow ups for the solution.

Christoph



Home | Main Index | Thread Index | Old Index