NetBSD-Bugs archive

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

kern/46168: /usr/tests/lib/libpthread/t_cond somtimes unkillable



>Number:         46168
>Category:       kern
>Synopsis:       /usr/tests/lib/libpthread/t_cond somtimes unkillable
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 10 16:50:00 +0000 2012
>Originator:     Manuel Bouyer
>Release:        NetBSD 6.99.3
>Organization:
>Environment:
System: NetBSD xen1.soc.lip6.fr 6.99.3 NetBSD 6.99.3 (GENERIC_DEBUG) #6: Sat 
Mar 10 16:29:53 CET 2012 
bouyer@hop:/dsk/l1/misc/bouyer/tmp/amd64/obj/dsk/l1/misc/bouyer/quota2/src/sys/arch/amd64/compile/GENERIC_DEBUG
 amd64
kernel with GENERIC+options DEBUG and the kmem_guard_depth setting as in
kmem(9).
Architecture: x86_64
Machine: amd64 (4-core with hyperthreading enabled Xeon system)
userland from recent netbsd-6
>Description:
        /usr/tests/lib/libpthread/t_cond:cond_timedwait_race sometimes hang,
        with an unkillable t_cond process:
xen1:/home/bouyer>ps axsw |grep t_cond
  0 4066 1673 2578  20    2  43  0 93804  1628 -        U-   ttyp1 0:00.17 
(t_cond)
  0 4066 1673 2578   8    2  85  0 93804  1628 lwpwait  D-   ttyp1 0:00.17 
(t_cond)
xen1:/home/bouyer>ps axsuw | grep t_cond
root    4066  0.0  0.0 93804  1628 ttyp1 DEl   5:27PM 0:00.17 (t_cond)
root    4066  0.0  0.0 93804  1628 ttyp1 DEl   5:27PM 0:00.17 (t_cond)

        from ddb:
db{0}> ps
PID    LID S CPU     FLAGS       STRUCT LWP *              NAME WAIT
611      1 3   3        80   fffffe81b54c4c00               tcsh ttyraw
4162     1 3   0        80   fffffe81af6c2800                 vi ttyraw
4363     1 3   0        80   fffffe81b653dc00                 sh wait
4066    20 8   1         0   fffffe81ae6c2000             t_cond
4066     8 3   0  10000000   fffffe81b7c4b800             t_cond lwpwait
db{0}> tr/a 0xfffffe81ae6c2000
trace: pid 4066 lid 20 at 0x0
db{0}> tr/a 0xfffffe81b7c4b800
trace: pid 4066 lid 8 at 0xfffffe810c5e8a10
sleepq_block() at netbsd:sleepq_block+0xa4
cv_wait() at netbsd:cv_wait+0x101
lwp_wait1() at netbsd:lwp_wait1+0x274
exit_lwps() at netbsd:exit_lwps+0x108
exit1() at netbsd:exit1+0x5c
sys_exit() at netbsd:sys_exit+0x3e
syscall() at netbsd:syscall+0xac

>How-To-Repeat:
        I can reproduce it reliably by running
        atf-run |&tee /tmp/run | atf-report |&tee /tmp/report
        in /usr/tests/lib/libpthread as root. Running just
        atf-run | atf-report
        doesn not reproduce it.
        /tmp is not a separate filesystem; / is a regular ffs filesystem.
>Fix:



Home | Main Index | Thread Index | Old Index