Aucbvax.2685 fa.unix-wizards utzoo!decvax!ucbvax!unix-wizards Fri Aug 14 09:41:28 1981 [J. Noel Chiappa : Bug (?) in tty] >From JNC@MIT-XX Fri Aug 14 09:10:13 1981 This was garbaged in transit; here it is again. --------------- Date: 13 Aug 1981 1932-EDT From: J. Noel Chiappa Subject: Bug (?) in tty$ttyopen To: unix-wizards at SRI-UNIX cc: JNC This is only sort of a bug, but here goes (I'm running a hevily modified V6.5 UNIX that some of you out there now of; the MIT one); this is for information and comments both. In tty$ttyopen there's some code of the form: if (p->p_pgrp == 0) { tp->t_pgrp = p->p_pid; p->p_pgrp = p->p_pid; } which assigns the terminal to that process (and all its children) if it didn't already have any TTY. This worked fine until one day we put into service an on-line backup daemon that did (essentially) a 'blast' (or 'wall' or whatever YOUR version is called) to tell people to mount the right volume so that it could do the backup. Great. The first time it was started from /etc/rc as an installed daemon, when it sent out its first message all the terminals on the system no longer sent interrupts to their process trees . We deinstalled the daemon, and it wasn't until just recently that I found the cause: that innocent looking code in tty$ttyopen. Since the daemon was started from /etc/rc, it had no associated terminal; thus, when it started opening terminals it smashed all the old t_pgrp assignments. My planned fix is to add the following code in sys1$exit: if (p->p_pid == p->p_pgrp) u.u_ttyp->t_pgrp = 0; and change the code in tty$ttyopen to be: if ((p->p_pgrp == 0) && (tp->t_pgrp == 0)) { which will deassign the TTY in question when the process group leader croaks and will only assign the tty to a process without a pgrp if the TTY doesn't already have an owner. Comments? ------- --------------- ------- ----------------------------------------------------------------- gopher://quux.org/ conversion by John Goerzen of http://communication.ucsd.edu/A-News/ This Usenet Oldnews Archive article may be copied and distributed freely, provided: 1. There is no money collected for the text(s) of the articles. 2. The following notice remains appended to each copy: The Usenet Oldnews Archive: Compilation Copyright (C) 1981, 1996 Bruce Jones, Henry Spencer, David Wiseman.