RELENG_6 devfs problem

Robert Watson rwatson at FreeBSD.org
Wed Jan 11 13:06:28 PST 2006


On Thu, 5 Jan 2006, Daniel O'Connor wrote:

> I just installed the latest mgetty and ran it, then found it wasn't talking 
> to my modem so I disabled it in /etc/ttys and killed the process.
>
> I ran fstat /dev/cuad0 to check it was dead and fstat got stuck in the devfs 
> state. It seems that everything else was stuck too and now the machine is 
> alive but not very functional.
>
> What can I do to try and debug it?

Do you use devfs rule sets?  I fixed a bug a week or so ago in devfs_rule.c in 
HEAD, and MFC'd the fix today.  The symptoms are much what you describe, and 
occur when an invalid rule is proposed -- the right error is returned, but a 
lock is not released resulting in it being unavailable when processes try to 
access device nodes, resulting in eventual deadlock.  It's devfs_rule.c:1.21 
in HEAD, and devfs_rule.c:1.14.2.3 in RELENG_6.  I belive the bug does not 
exist in RELENG_5, as there were significant changes in devfs locking for 6.0, 
and those haven't been merged to RELENG_5.

If this doesn't fix it, the normal debugging steps apply -- compile in DDB, 
BREAK_TO_DEBUGGER, and WITNESS.  When the wedge occurs, dump the lock state 
(show alllocks), and we'll see if we can track down the problem.

Robert N M Watson


More information about the freebsd-stable mailing list