[gnu.bash.bug] ^S/^Q causes bash to hang...

gnb@bby.oz.au (Gregory N. Bond) (02/13/90)

An obscure bug in bash, 1.04, Sun 3/80/SunOs4.0.3/Sun cc.

If you run a program that does output, and use ^S to stop scrolling,
then if the program exits before you start scrolling (by writing the
last characters to the terminal and exiting), then the screen hangs.
You can't send a ^Q to the terminal driver to start scrolling because
bash has reset the terminal modes, and interrupts etc are ignores.
The only way out is to fire up another window and kill the bash
process.

I can do this quite reliably by typeing ^s while running the doit.bin
script from Cnews installation.  

The fix would seem to be for bash to wait until all pending output is
flushed before changing to the cbreak mode.

After the hang:

leo## sps vt p3
Ty User     Status Fl Nice Virt Res %M  Time Child %C Proc# Command
p3.gnb      RTTYP3         128  656  2   2.1+  6.1  0 22986 bash
97 (39600k) processes, 6 (392k) busy, 95 (22992k) loaded, 2 (504k) swapped
leo## stty -a > /dev/ttyp3
speed 9600 baud, 34 rows, 80 columns
-parenb -parodd cs8 -cstopb -hupcl cread -clocal -crtscts 
-ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc 
-ixon -ixany -ixoff imaxbel 
isig -icanon -xcase -echo echoe echok -echonl -noflsh -tostop 
echoctl -echoprt echoke 
opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel -tabs 
min 1, time 0
erase  kill   werase rprnt  flush  lnext  susp   intr   quit   stop   eof
^?     ^U     ^W     ^R     ^O            ^Z     ^C     ^\            
leo## 
--
Gregory Bond, Burdett Buckeridge & Young Ltd, Melbourne, Australia
Internet: gnb@melba.bby.oz.au    non-MX: gnb%melba.bby.oz@uunet.uu.net
Uucp: {uunet,pyramid,ubc-cs,ukc,mcvax,prlb2,nttlab...}!munnari!melba.bby.oz!gnb