On Fri, 13 Jan 2006, Kris Kennaway wrote:
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.
I don't use rulesets, and I encountered the same problem when using minicom
to talk to serial ports. I didn't yet have time to debug it, but I can
provide instructions for repeating it.
I may or may not have time to dig in, but if you could file the details in a
PR (if you haven't already) I can try and take a look. Another similar lock
leak wouldn't surprise me. "show alllocks" in DDB once the wedge had happened
would be very helpful.
Robert N M Watson
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"