Subject: kern/33087: SCHED_ASSERT_UNLOCK assertion in pool_get triggered through kpsignal2
To: None <firstname.lastname@example.org, email@example.com,>
From: None <firstname.lastname@example.org>
Date: 03/15/2006 16:00:00
>Synopsis: SCHED_ASSERT_UNLOCK assertion in pool_get triggered through kpsignal2
>Arrival-Date: Wed Mar 15 16:00:00 +0000 2006
>Originator: Quentin Garnier
>Release: NetBSD 3.99.17
Quentin Garnier - email@example.com - cube@NetBSD.org
"When I find the controls, I'll go where I like, I'll know where I want
to be, but maybe for now I'll stay right here on a silent sea."
KT Tunstall, Silent Sea, Eye to the Telescope, 2004.
Probably irrelevant, but got for a netbsd32 process on an amd64 system.
Run regress/lib/libpthread/sigalarm with a LOCKDEBUG kernel.
What happens is that kpsignal2 does a lot of things under SCHED_LOCK,
notably calling ksiginfo_put() in some situations. That function calls
pool_get() which triggers the assertion.
Move the assertion in the WAITOK case in pool_get?