Bug #5581
ChUI slowdown when child OS process holds open input
0%
History
#2 Updated by Roger Borrello almost 3 years ago
Most of the good information starts at #4982-87 and forward. The issue came to light when a supporting script was reverted to a non-Unix format (since they were kept on a Windows server, and zipped up from there, then transferred to the Ubuntu server). The underlying script was dying as a child process of the 4GL (due to the non-Unix format), but kept the input stream opened. The FWD ChUI would become very, very unresponsive.
To attempt to duplicate the issue, various scripts were created, and tried to store them as DOS format instead of Unix (using unix2dos
and dos2unix
). However, the 4GL is tolerant of the format (unlike FWD) so duplication using that method didn't work. Instead, we have to create a script that would hold open the input stream.
I will post more details, and duplicating scripts here, once they are cleaned up.
#3 Updated by Roger Borrello almost 3 years ago
Testcase ./uast/hang_through.p
was added. When you uncomment the update i with frame f2.
you get Progress to hang.
/* * hangout.cmd can be: set /p d=yes or no [y/n]?: * hangout can be : read -p "yes or no [y/n]? " yn */ def var i as int. def var ch as char format "x(256)". def var cmd as char init "hangout.cmd". if opsys = "unix" then assign cmd = "countprogusers". input through value(cmd) no-echo. set ch with frame f1 size 20 by 20 no-error. input close. message ch. /*update i with frame f2.*/ def var p1 as char. form p1 with frame f3 no-labels 10 down. do i = 1 to 9: p1 = string(i). display p1 with frame f3. down with frame f3. end. choose row p1 with frame f3.