:: .SH foo, bar, baz
::
::and then a lot of junk text (I appended /etc/rc and /etc/rc.network). Then,
::when I do
::
:: nroff -ms foo.ms 2>&1 | less
::
::and quit 'less' straight away, the whole system seems to lockup. ^T
::worked (sometimes), and showed troff using lots of system time (no user
::time). ping from another host worked, ctrl-alt-esc dropped into DDB ok,
I've committed a fix to this in -current, 4.x, and 3.x. Rev 1.61
kern/sys_pipe.c (current), 1.60.2.1 in RELENG_4, something else in
RELENG_3. Sorry 2.2.x'rs, three is my limit :-)
What happens is that the pipe writer checks for the reader going away
before entering the while() loop on the write, but only checks
sporatically inside that loop.
There are situations where the reader may go away while the writer is
blocked and cause the writer to enter into an infinite loop because
the writer believes there is a reader 'reading' when, in fact, the reader
side is stuck in pipeclose(). They two sides then play ping-pong
tsleep/wakeup with each other forever.
-Matt
Matthew Dillon
<[EMAIL PROTECTED]>
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message