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 PS I'm reasonably certain that the most recent checkins (between now and Feb 20th) wouldn't fix this, but if I'm wrong, just let me know!Received on Mon Mar 09 2009 - 18:02:12 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:43 UTC