Fixed
Created: Nov 27, 2012
Updated: Dec 19, 2017
Resolved Date: Nov 19, 2015
Previous ID: LIN3-22552
Found In Version: 5.0
Fix Version: 5.0.1.33
Severity: Severe
Applicable for: Wind River Linux 5
Component/s: Kernel
Host OS: Linux Ubuntu
The process which uses pty slave stops and doesn't wake up under heavy load on multiple telnet sessions.
This was filed as WIND00376270 and a patch was released.
But the problem is still there on WRL 3.0.3 RCPL-12.
1. configure a WRL 3.0.3 platform project.
/WindRiver/wrlinux-3.0/wrlinux/../ldat/configure
--with-product-dir=/WindRiver/wrlinux-3.0/wrlinux
--enable-board=intel_truxton
--enable-build=production --enable-jobs=4
--enable-kernel=standard
2. build root fs and kernel.
make -C build linux
make fs
3. boot the kernel on a target.
4. setup and start telnet server on the target.
5. build the attached test cases.
loop_usleep:
i586-wrs-linux-gnu-i686-glibc_small-gcc -g -march=pentium4 -mmmx \
-msse -msse2 -mfpmath=sse -O0 -fno-omit-frame-pointer -pipe \
-fPIC -MD -MP -c -DARCH=x86 -o loop_usleep.o loop_usleep.c
i586-wrs-linux-gnu-i686-glibc_small-gcc -g -o loop-usleep loop_usleep.o
window_dsp:
i586-wrs-linux-gnu-i686-glibc_small-gcc -g -march=pentium4 -mmmx \
-msse -msse2 -mfpmath=sse -O0 -fno-omit-frame-pointer -pipe \
-fPIC -MD -MP -c -DARCH=x86 -o window_dsp.o window_dsp.c
i586-wrs-linux-gnu-i686-glibc_small-gcc -g -o window_dsp window_dsp.o
6. open six telnet sessions on multiple terminals.
Window1:
telnet <target ip>
Window2:
telnet <target ip>
Window3:
telnet <target ip>
Window4:
telnet <target ip>
Window5:
telnet <target ip>
Window6:
telnet <target ip>
7. run loop_usleep on the target console.
Console:
# loop_usleep 2000 &
8. run window_disp on each telnet terminal.
Many characters are shown repeatedly on the each telnet session.
From Window1 to- Window6:
# window_dsp 0
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP....
9. wait serveral minutes (or hours), then characters output
stops on one (or more) telnet terminal.
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB
ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZAB
ABCDEFGHIJKLMNOPQRST <--- (stopped!!)