Subject: Re: CVS commit: src/lib/libpthread
To: None <current-users@netbsd.org>
From: =?ISO-8859-1?Q?Stefan_Kr=FCger?= <skrueger@meinberlikomm.de>
List: current-users
Date: 08/30/2005 12:57:35
Stefan Krüger wrote:
> Christos Zoulas wrote:
> 
>>In article <420B69A9.6000103@meinberlikomm.de>,
>>Stefan Krüger  <skrueger@meinberlikomm.de> wrote:
>>
>>
>>>Christos Zoulas wrote:
>>>
>>>
>>>>Module Name:	src
>>>>Committed By:	christos
>>>>Date:		Thu Feb 10 02:20:49 UTC 2005
>>>>
>>>>Modified Files:
>>>>	src/lib/libpthread: pthread.c
>>>>
>>>>Log Message:
>>>>If $PTHREAD_CONCURRENCY is not set, set it to ncpu
>>>
>>>do you also plan to fix pthread_kill?
>>>
>>>see src/regress/lib/libpthread/kill1/*
>>>
>>>I'm not sure but it may be related to some hardlocks I had w/ 
>>>PTHREAD_CONCURRENCY=2 and firefox/ogg123, see Message-ID: 
>>><4206A2A2.5020400@meinberlikomm.de>
>>
>>
>>I guess we will need to won't we? Is there a PR for this yet?
>>
>>christos
> 
> sry it took so long but I was quite busy...
> 
> anyway, I figured out how to (reproduceable!) panic a fresh netbsd
> kernel (build today, from HEAD), with ogg123 but any other pthread app
> may trigger it, too :(
> 
> again, I have a MP box and this only happens with PTHREAD_CONCURRENCY=2
> 
> here are my steps:
> 
> first I compiled a stripped down netbsd kernel w/ REALEXTMEM=32768 (I
> need/want a small crashdump)
> 
> then I booted it with boot netbsd.minimal -s
> ...
> $ mount -r /home (ogg file is saved there)
> $ mount -r /usr
> $ mount -r /usr/pkg
> $ su -m ordinary_user
> % env PTHREAD_CONCURRENCY=2 ogg123 song.ogg (let it a few secs play)
> CRTL+Z
> % fg
> CRTL+C
> Done. (<- Last msg from ogg123)
> panic: kernel diagnostic assertion "p->p_nrlwps == 0" failed: file
> "/usr/src/sys/kern/kern_exit.c", line 781
> Stopped in pid 30.1 (csh) at netbsd:cpu_Debugger+0x4:      popl     %ebp
> db{0}> bt
> cpu_Debugger(c02b0062,c47cfec0,206,c031de80,c02d4cc0) at
> netbsd:cpu_debugger+0x4
> 
> panic(c02f5280,c02b0def,c02b495f,c02d4800,30d) at netbsd:panic+0xb5
> __assert(c02b0def,c02d4800,30d,c02b495f,0) at netbsd:__assert+0x2e
> proc_free(c3e4cab4,bfbfe7e8,48,c47cff40,0) at netbsd:proc_free+0x81
> sys_wait4(c3e4b6b4,c47cff70,c47cff68,c031daa8,c02fa834) at
> netbsd:sys_wait4+0xf5
> 
> syscall_plain() at netbsd:syscall_plain+0x10f
> --- syscall (number 7) ---
> 0xbdb3893f
> db{0}> sync
> ...
> 
> I also got a crashdump but the netbsd.?.core is somehow damaged, I've
> tried it several times but gdb refuses it :-(
> 
> so, what's next?

now that yamt has fixed this (see
http://mail-index.netbsd.org/source-changes/2005/08/28/0027.html) I
think it's safe to use ncpu now

regards,
SK