ttyflags wants to set some little flags on each tty.

These flags are LOCAL, CRTSCTS, SOFTCAR and MDMBUF.

To do so, it opens every physical tty listed in /etc/ttys with
open(path, O_RDONLY | O_NONBLOCK), does an ioctl to the mode, and
close it.

That ioctl should not block.  It's right there, in the argument.

If that blocks, the driver has a bug.

My guess is that com.c has had a bug for a long time regarding non-existing
or bogus or otherwise weird hardware, and what has changed trust ACPI's tables
that there is an actual com device at a certain hardware address, and the
driver code trips over the device and goes into a non-returning loop.

What can I recommend?

change /etc/rc to do
       ktrace -di -o /tmp/ktrace.out ttyflags -a &

add add something like
    sleep 40
    kdump -lf /tmp/ktrace.out

That might let us see it it hung on open() or in the ioctl()


Reply via email to