#5229: PANIC: acquire_spinlock(): Failed to acquire spinlock 0xcdc5eb68 for a long time! ---------------------------+------------------------------------------------ Reporter: anevilyak | Owner: bonefish Type: bug | Status: in-progress Priority: normal | Milestone: R1 Component: System/Kernel | Version: R1/Development Keywords: | Blockedby: Platform: All | Blocking: ---------------------------+------------------------------------------------ Changes (by bonefish): * status: new => in-progress Comment: Replying to [comment:3 anevilyak]: > In any case, I only ever see this problem with the scheduling_recorder, and the backtraces consistently point to the guts of the profiler so I'd unfortunately have to say this appears unrelated to your and Matt's problems, and instead is just a simple lock order reversal or similar issue in the kernel profiler :/ Yep, that's indeed a locking order reversal. SystemProfiler::NextBuffer() uses a condition variable while holding the object's lock, and when waking up a waiting thread the condition variable code will enter the system profiler while holding the condition variable lock. Regarding "calling" (and "bt"), ATM there's the somewhat annoying limitation on SMP machines that the stack trace code doesn't handle threads currently running on other CPUs specially. Which it should, though, since the current stack pointer in the thread's data is obsolete at this point. The command you're looking for is "ls" (lookup symbol), though. "help | grep symbol" FTW. :-) -- Ticket URL: <http://dev.haiku-os.org/ticket/5229#comment:4> Haiku <http://dev.haiku-os.org> Haiku - the operating system.