[319] in Athena Bugs

home help back first fref pref prev next nref lref last post

Re: ^C in csh (6.0 machines)

daemon@ATHENA.MIT.EDU (Theodore Ts'o)
Tue May 3 23:08:02 1988

Date: Tue, 3 May 88 22:36:49 EDT
From: Theodore Ts'o <tytso@ATHENA.MIT.EDU>
To: John D. Kubiatowicz <kubitron@ATHENA.MIT.EDU>
Cc: bugs@ATHENA.MIT.EDU, henry@ATHENA.MIT.EDU
In-Reply-To: John D. Kubiatowicz's message of Tue, 03 May 88 21:05:34 EDT,
Reply-To: tytso@ATHENA.MIT.EDU
   Date: Tue, 03 May 88 21:05:34 EDT
   From: John D. Kubiatowicz <kubitron@ATHENA.MIT.EDU>

   The bottom line here is that the shell is not always catching the SIGINT.  
   I broke out of the above loop by hitting ^C several times in succession.
   In the past, I have had instances where the shell would not break,
   reguardless of the speed with which I hit ^C.

This is something we would have to take up with Berkeley --- I just
tried it on a version 3.0.4.1 workstation, running generic Berkeley
/bin/csh --- the "misfeature" is there.  I'm not, however, convinced
that it is a bug; it may be designed that way.  The tty process group /
signal code is so convoluted that it will be a while before I can figure
out 1) whether it is intentional or not and 2) if it is a bug, what the
fix is. 

I could see an argument made that this is what should happen.  Why
should the ^C propagate?  The current process (dd) is running; ^C stops
it, and it exits with a zero status code.  Naturally, the repeat
continues onward.  Consider "repeat 200 <interactive program>".  You
exit the interactive program with ^C.  Should the repeat die or not?

Actually, I don't buy these arguments much; (I'm playing devil's
advocate here)  but the point is that it should not automatically be
considered a bug.

						- Ted

home help back first fref pref prev next nref lref last post