Text File

Aucbvax.2685 fa.unix-wizards utzoo!decvax!ucbvax!unix-wizards Fri Aug 14 09:41:28 1981 [J. Noel Chiappa <JNC>: 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 <JNC> Subject: Bug (?) in tty 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 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. 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:

if (p->p_pid == p->p_pgrp) u.u_ttyp->t_pgrp = 0;

and change the code in tty 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 <jgoerzen@complete.org> 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.