CPU SNACKING WAS: Re: Is it possible to timeout 4GL?
Posted in 1994
In <301h0l$g2c@emory.mathcs.emory.edu> paulw@dev.jcdc.eta.gov writes: >We had this problem before also on our AIX box, but rather that look to code >to fix the problem, we used our UNIX knowledge. >In the users .profile files, rather than just fglgo'ing the program, we >exec fglgo the program. This lets the kill signals get to through when >a user disconnects abruptly. This article prompted me to try to figure out once more why my program sometimes starts to eat up all available CPU when connection from the user breaks in an abnormal way. And finally I think I understand whats happening: Trying to create this condition I ran a query making a report to a unix file, and while the select was running I turned off the PC/Mac with the telnet session and watched the 'ps -u user' on the host without trying to kill them. In about the time when query should have finished there was suddenly created a new process that started to eat CPU. The program had come to a menu, and the first Item there tried to display the report-file with 'less', and less was eating CPU. Killing the 'less' process had the only effect that a new 'less' process was created. SO, obviously the program was stuck processing the default menu Item. Further testing of setting the item 'Quit Program' as default had the effect of quitting the program and erasing all the zombie-processes. My sys-adm says it's because Informix; when reading the input; cuts the activating signal (enter key usually) off the input string without checking if it's ENTER (1 returned) or an EOF (0 returned) and thus is not able to raise the exception to quit the program. Now, I don't think my users would appreciate me making 'QUIT' the default menu item to try to fix this problem. Do others think that this is an Informix problem that they should fix? Or what do you people think about this? In the hope that someday (while still using Informix) I wont have to worry about this nuisance anymore. Regards, Gaukur. gaukur@rhi.hi.is