NetBSD-Bugs archive

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

bin/45686: rump_server & rump.powerd LOCKDEBUG panic



>Number:         45686
>Category:       bin
>Synopsis:       rump_server & rump.powerd LOCKDEBUG panic
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Dec 05 18:30:01 +0000 2011
>Originator:     Nicolas Joly
>Release:        NetBSD 5.99.58
>Organization:
Insitut Pasteur
>Environment:
System: NetBSD lanfeust.sis.pasteur.fr 5.99.58 NetBSD 5.99.58 (LANFEUST) #3: 
Sat Dec 3 22:20:39 CET 2011 
njoly%lanfeust.sis.pasteur.fr@localhost:/local/src/NetBSD/obj.amd64/sys/arch/amd64/compile/LANFEUST
 amd64
Architecture: x86_64
Machine: amd64
>Description:
rump LOCKDEBUG pacic occurs when stopping rump.powerd previously connected to
a rump_server.

1) Launch the rump_server in a terminal.

njoly@lanfeust [/tmp/xx]> RUMP_SERVER="unix://socktest" 
njoly@lanfeust [/tmp/xx]> export RUMP_SERVER
njoly@lanfeust [/tmp/xx]> rump_server -s -l rumpvfs -l rumpdev -l 
rumpdev_sysmon ${RUMP_SERVER}
[...WAIT...]

2) Start and stop rump.powerd from a 2nd terminal

njoly@lanfeust [/tmp/xx]> RUMP_SERVER="unix://socktest" 
njoly@lanfeust [/tmp/xx]> export RUMP_SERVER
njoly@lanfeust [/tmp/xx]> rump.powerd -n -d
^C
njoly@lanfeust [/tmp/xx]> 

3) See a panic message in the 1st terminal.

[...WAIT...]
mutex error: lockdebug_unlocked: not locked

lock address : 0x000000007ff1ac10 type     :     sleep/adaptive
initialized  : 0x00007f7ff7875be1
shared holds :                  0 exclusive:                  0
shares wanted:                  0 exclusive:                255
current cpu  :                  0 last held:                  0
current lwp  : 0x000000007ff1a600 last held: 000000000000000000
last locked  : 0x00007f7ff788210d unlocked*: 0x00007f7ff788210d


panic: LOCKDEBUG
rump kernel halting...
halted
zsh: abort (core dumped)  rump_server -s -l rumpvfs -l rumpdev -l 
rumpdev_sysmon ${RUMP_SERVER}

Here follow the corresponding backtrace.

(gdb) bt
#0  0x00007f7ff64ebd5a in _lwp_kill () from /usr/lib/libc.so.12
#1  0x00007f7ff64eb692 in abort () at 
/local/src/NetBSD/src/lib/libc/stdlib/abort.c:74
#2  0x00007f7ff740983c in rumpuser_exit (rv=63)
    at /local/src/NetBSD/src/lib/librumpuser/rumpuser.c:541
#3  0x00007f7ff7885527 in cpu_reboot (howto=<optimized out>, bootstr=<optimized 
out>)
    at 
/local/src/NetBSD/src/lib/librump/../../sys/rump/librump/rumpkern/rump.c:557
#4  0x00007f7ff785defe in vpanic (fmt=0x7f7ff788e0d3 "LOCKDEBUG", 
ap=0x7f7fe63ff3d0)
    at /local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_prf.c:308
#5  0x00007f7ff785e003 in panic (fmt=0x3f <Address 0x3f out of bounds>)
    at /local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_prf.c:205
#6  0x00007f7ff784ba5a in lockdebug_abort1 (ld=0x7ff28440, s=0, func=<optimized 
out>, 
    msg=<optimized out>, dopanic=true)
    at 
/local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/subr_lockdebug.c:784
#7  0x00007f7ff7881cdf in mutex_exit (mtx=0x7ff1ac10)
    at 
/local/src/NetBSD/src/lib/librump/../../sys/rump/librump/rumpkern/locks.c:135
#8  0x00007f7ff7881dab in docvwait (cv=0x7ff1ac58, mtx=0x7ff1ac10, 
ts=<optimized out>)
    at 
/local/src/NetBSD/src/lib/librump/../../sys/rump/librump/rumpkern/locks.c:315
#9  0x00007f7ff788210d in cv_timedwait (cv=0x7ff1ac58, mtx=<optimized out>, 
ticks=0)
    at 
/local/src/NetBSD/src/lib/librump/../../sys/rump/librump/rumpkern/locks.c:363
#10 0x00007f7ff787691f in kqueue_scan (kevbuf=0x7f7fe63ff660, 
retval=0x7f7fe63ff880, tsp=0x0, 
    ulistp=0x7f7fffffd840, maxevents=16, fp=<optimized out>, keops=<optimized 
out>, 
    kevcnt=<optimized out>)
t /local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/kern_event.c:1161
#11 kevent1 (retval=0x7f7fe63ff880, fd=0, changelist=0x7f7fe63ff660, 
nchanges=0, 
    eventlist=0x7f7fffffd840, nevents=16, timeout=0x0, keops=0x7f7ff7ab3d40)
    at /local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/kern_event.c:881
#12 0x00007f7ff7876bfb in sys___kevent50 (l=<optimized out>, uap=<optimized 
out>, 
    retval=<optimized out>)
    at /local/src/NetBSD/src/lib/librump/../../sys/rump/../kern/kern_event.c:802
#13 0x00007f7ff788515d in sy_call (rval=0x7f7fe63ff880, uap=0x7f7ff7701230, 
l=0x7ff1a600, 
    sy=0x7f7ff7aba5b0) at 
/local/src/NetBSD/src/lib/librump/../../sys/rump/../sys/syscallvar.h:61
#14 rump_proxy_syscall (num=<optimized out>, arg=0x7f7ff7701230, 
retval=0x7f7fe63ff880)
    at 
/local/src/NetBSD/src/lib/librump/../../sys/rump/librump/rumpkern/rump.c:740
#15 0x00007f7ff7406b01 in rumpsyscall (retval=0x7f7fe63ff880, 
data=0x7f7ff7701230, sysnum=435)
    at /local/src/NetBSD/src/lib/librumpuser/rumpuser_sp.c:223
#16 serv_handlesyscall (data=0x7f7ff7701230 "", spc=0x7f7ff760c9a8, 
rhdr=<optimized out>)
    at /local/src/NetBSD/src/lib/librumpuser/rumpuser_sp.c:635
#17 serv_workbouncer (arg=<optimized out>) at 
/local/src/NetBSD/src/lib/librumpuser/rumpuser_sp.c:717
#18 0x00007f7ff7009cd5 in pthread__create_tramp (cookie=0x7f7fe6000000)
    at /local/src/NetBSD/src/lib/libpthread/pthread.c:492
#19 0x00007f7ff6476420 in ___lwp_park50 () from /usr/lib/libc.so.12
#20 0x00007f7fe6400000 in ?? ()
#21 0x00007f7ff7fe32c0 in ?? ()
#22 0x0000000111110001 in ?? ()
#23 0x0000000033330003 in ?? ()
#24 0x0000000000000000 in ?? ()

>How-To-Repeat:
Repeat the testcase on a RUMPLOCKDEBUG=yes rump build.
>Fix:



Home | Main Index | Thread Index | Old Index