If, parent process prepare pseudo terminal, vfork(2) a child, and the child calll setsid(), ioctl (,TIOCSTTY,) to make tty side of pty as control terminal, (here, suppose that child tries to exec but it failed, for example, there is no such file ...) write(2) some diag message to control terminal, and exit, then both process wait each other, i.e. dead lock. parent process wait child to wakeup() in vfork syscall, and child waits to drain tty by someone else (but unfortunately it is slept parent) in exit syscall (of ttywait()). That's why GNU Emacs hangs if pass non existient full path name to start-process. Fix: NetBSD is recently changed to wakeup the parent earlier if PPWAIT flag is set. How-To-Repeat: write sample programs do above, or eval (start-process "hoge" nil "/tmp/hoge/no/n/exi/s/t/path") in GNU Emacs 19.30 (at least i tested on it).
State Changed From-To: open->feedback Dust off the cobwebs - Confirm Status
State Changed From-To: feedback->closed timed out