On 09-Dec-2003 Robin Breathe wrote: > John Baldwin wrote: >> Oof, you seem to have possibly hit a corrupted thread object. > > Sounds unpleasant. > >>>(kgdb) l *0xc0537aa6 >>>0xc0537aa6 is in turnstile_wait (/usr/src/sys/kern/subr_turnstile.c:439). >>>434 td = curthread; >>>435 tc = TC_LOOKUP(lock); >>>436 mtx_assert(&tc->tc_lock, MA_OWNED); >>>437 MPASS(td->td_turnstile != NULL); >>>438 MPASS(owner != NULL); >>>439 MPASS(owner->td_proc->p_magic == P_MAGIC); >>>440 >>>441 /* If the passed in turnstile is NULL, use this thread's >>>turnstile. */ >>>442 if (ts == NULL) { >>>443 ts = td->td_turnstile; >>>(kgdb) >> >> owner is not NULL, but it blew up trying to read owner->td_proc. >> Hmm, actually then, I think the owner pointer is bad. There was >> a while after one of the KSE commits when people would get panics >> with a thread whose td_proc was NULL, but I don't know if that bug >> was ever figured out or fixed. For owner to be wrong though, >> mtx_lock in the relevant mutex must have been corrupted somehow. > > I see (partially). Is there anything I can do to help track the culprit, > running the command which leads to panic inside gdb? Anything vaguely > sensible? It would obviously be a bonus if we could track this bad-boy > down before 5.2 gets out the door. Umm, well. You can try figuring out which mutex is having this problem and maybe use some KTR dumps to figure out if someone is blocking a destroy'd mutex. I think that with INVARIANTS on you should get a panic before that though. :( -- John Baldwin <jhb_at_FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/Received on Tue Dec 09 2003 - 10:19:30 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:33 UTC