Re: Using PTHREAD_PRIO_INHERIT causes panic in kern_umtx.c

From: Justin Teller <justin.teller_at_gmail.com>
Date: Tue, 10 Mar 2009 20:04:57 -0700
>
> When I compile and run the attached program, it panics my system, (FreeBSD
>>> CURRENT as of 2-20-09) with the following message:
>>>
>>> panic: Assertion pi != NULL failed at /usr/src/sys/kern/kern_umtx: 1464
>>>
>>> With the backtrace being:
>>> Tracing pid 1079 tid 100045 td 0xffffff00037c8000
>>> kdb_enter() at kdb_enter+0x40
>>> panic() at panic+0x1ec
>>> umtx_pi_adjust() at umtx_pi_adjust+0xfc8
>>> umtx_pi_adjust() at umtx_pi_adjust+0x19bd
>>> _umtx_unlock() at _umtx_unlock+0x2c41
>>> _umtx_op() at _umtx_op+0x22
>>> syscall() at syscall+0x1f4
>>> Xfast_syscall() at Xfast_syscall+0xaa
>>> --- syscall (454, FreeBSD ELF64, _umtx_op), rip = 0x4056ac, rsp =
>>> 0x7fffffbfef38, rbp = 0x80060b150 ---
>>>
>>> This problem only shows up when I use PTHREAD_PRIO_INHERIT -- if I change
>>> the line for pthread_mutexattr_setprotocol to PTHREAD_PRIO_NONE, then it
>>> works fine.  I've been trying to trace thru the code to figure out where
>>> uq_pi_blocked should be setup, but I'm not too familiar with the code so
>>> I
>>> haven't found where the problem originates.  How can I get
>>> PTHREAD_PRIO_INHERIT to work?  And even if the change is in user-space,
>>> it
>>> probably shouldn't be this easy to panic the kernel :-)
>>>
>>> -Justin
>>>
>>>
> There is a bug about NULL pointer, please try the patch, it also
> fixes a possible wake-up race.
>
> http://people.freebsd.org/%7Edavidxu/patch/kern_umtx_prio.patch
>
>
> David Xu
>
>
That definitely looks like it fixes it for my system -- thanks for the quick
response!!
Received on Wed Mar 11 2009 - 02:04:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:43 UTC