threads/132215: Crash after running ppp

Robert Watson rwatson at FreeBSD.org
Mon Mar 2 09:00:13 PST 2009


The following reply was made to PR kern/132215; it has been noted by GNATS.

From: Robert Watson <rwatson at FreeBSD.org>
To: John Baldwin <jhb at freebsd.org>
Cc: freebsd-threads at freebsd.org, Stephane Legrand <stephleg at free.fr>, 
    freebsd-gnats-submit at freebsd.org
Subject: Re: threads/132215: Crash after running ppp
Date: Mon, 2 Mar 2009 16:52:38 +0000 (GMT)

 On Mon, 2 Mar 2009, John Baldwin wrote:
 
 >> Unread portion of the kernel message buffer:
 >> Sleeping thread (tid 100053, pid 516) owns a non-sleepable lock
 >> panic: sleeping thread
 ...
 > Can you do something like this in kgdb:
 >
 > frame 5
 > set $td = (struct thread *)(m->mtx_lock & ~3)
 > p $td->td_tid
 >
 > (This should print out a thread ID)
 >
 > thread $td->td_tid
 > where
 >
 > This should give you the stack trace of the misbehaving thread which slept
 > while holding a route lock.
 >
 > Also, this is a kernel bug, not a thread issue.
 
 Actually, just a stack trace of tid 100053/pid 516 should be sufficient.  This 
 is the second report I've had of a panic along these lines relating to ppp, 
 and it seems likely to me that the fixes to routing locking have introduced an 
 edge case where the routing code sleeps allocating or waiting for a route 
 while holding a lock where it didn't happen previously.  If we can work out 
 the stack trace leading to the sleep, we can probably fix this in short order.
 
 Robert N M Watson
 Computer Laboratory
 University of Cambridge


More information about the freebsd-bugs mailing list