Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Aug 2006 09:44:00 -0400
From:      John Baldwin <jhb@freebsd.org>
To:        freebsd-stable@freebsd.org
Cc:        Peter van Heusden <pvh@wfeet.za.net>
Subject:   Re: Unexplained kernel panic on 5-STABLE
Message-ID:  <200608140944.01232.jhb@freebsd.org>
In-Reply-To: <44DED670.9050601@wfeet.za.net>
References:  <44DED670.9050601@wfeet.za.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sunday 13 August 2006 03:36, Peter van Heusden wrote:
> Hi everyone
> 
> Almost every day, some time around midnight, my FreeBSD 5-STABLE kernel
> panics. I've attached the output of a kgdb session of the saved core
> file - is there any further info that would be useful to debugging? I've
> got no idea where to start looking for a solution to this problem, so
> please help!!

A thread is sleeping while holding a mutex.

> (kgdb) list *0xc066dfc3
> 0xc066dfc3 is in propagate_priority
> (/usr/src/sys/kern/subr_turnstile.c:245).
> 240                     /*
> 241                      * Pick up the lock that td is blocked on.
> 242                      */
> 243                     ts = td->td_blocked;
> 244                     MPASS(ts != NULL);
> 245                     tc = TC_LOOKUP(ts->ts_lockobj);
> 246                     mtx_lock_spin(&tc->tc_lock);
> 247    
> 248                     /*
> 249                      * This thread may not be blocked on this
> turnstile anymore
> (kgdb) backtrace
> #19 0xc066dfc3 in propagate_priority (td=0xc1e22c00) at
> /usr/src/sys/kern/subr_turnstile.c:243

Do the following in 'kgdb':

frame 19
p td->td_proc->p_pid
(this will output the 'pid' of the misbehaving thread)
proc <pid>
(<pid> is the pid from the previous command, this switches you to that
 thread)
backtrace

That backtrace will then show you which thread slept while holding a
mutex.

-- 
John Baldwin



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200608140944.01232.jhb>