Bug#291137: /usr/X11R6/bin/luit: luit sometimes doesn't restore terminal settings or hangs
Package: xutils
Version: 4.3.0.dfsg.1-10
Severity: normal
File: /usr/X11R6/bin/luit
luit sometimes doesn't restore terminal settings corretcly, which results
in echo and other flags being turned off.
example:
luit echo foo
results in echo turned off (no typed input being seen). It doesn't happen
deterministically and seems to be completely independent of the locale and
the program.
The following script demonstrates it on my system:
#!/usr/bin/bash
stty sane
for((i=0;i<10000;i++)); do
stty -a >/tmp/a
luit echo -n
stty -a >/tmp/b
stty sane
diff -u a b
done
This shows a difference in roughly 33 of 10000 tries on my system, but
statistics vary. The diff is like this:
--- a 2005-01-19 00:08:00.806405713 +0100
+++ b 2005-01-19 00:08:00.810404774 +0100
@@ -1,10 +1,11 @@
speed 38400 baud; rows 35; columns 142; line = 208;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W;
-lnext = ^V; flush = ^O; min = 1; time = 0;
+lnext = ^V; flush = ^O; min = 0; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts
--ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff
+-ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff
-iuclc -ixany imaxbel
-opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
+opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0
+ff0
+-isig -icanon iexten -echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke
Sometimes, luit will hang completely. Attaching strace to luit in this
case gives the following output:
Process 14230 attached - interrupt to quit
write(2, "Couldn\'t copy terminal settings\n", 32) = 32
exit_group(1) = ?
Process 14230 detached
and exits. It looks like there is a race condition inside luit. It is
likely an upstream issue because similar behaviour can be demonstrated ona
fedora 3 system.
-- System Information:
Debian Release: 3.1
APT prefers testing
APT policy: (700, 'testing'), (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.9
Locale: LANG=C, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Versions of packages xutils depends on:
ii cpp 4:3.3.5-1 The GNU C preprocessor (cpp)
hi libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an
ii libncurses5 5.4-4 Shared libraries for terminal hand
ii xfree86-common 4.3.0.dfsg.1-10 X Window System (XFree86) infrastr
ii zlib1g 1:1.2.2-3 compression library - runtime
-- no debconf information
Reply to: