On Wed, Nov 21, 2007 at 06:49:49PM +0100, Dr. Werner Fink wrote:
> Hi,
>
> starting a ksh like
>
> /suse/werner> PATH=/usr/local/bin:/usr/bin:/bin:. ksh
> [EMAIL PROTECTED]:/suse/werner> ksh
> [EMAIL PROTECTED]:/suse/werner> echo | les
> les: not found [No such file or directory]
> [EMAIL PROTECTED]:/suse/werner>
> [endless loop in tty_set() of src/cmd/ksh93/edit/edit.c]
>
> after sending a SIGSEGV I've identified the loop
>
> while(tcsetattr(fd, action, tty) == SYSERR)
> {
> if(errno !=EINTR)
> return(SYSERR);
> errno = 0;
> }
>
> as cause of the problem. A simliar loop is found in
> tty_get() in the same file src/cmd/ksh93/edit/edit.c
>
> It looks like the first ksh has locked the tty and the second
> ksh receives an EINTR for every tcsetattr() which results
> into an endless loop.
>
> IMHO the first ksh should not lock the tty in that way,
> shouldn't it?
It looks like the ksh has a problem within signal handling
of SIGTTIN, SIGTTOU, and SIGTSTP:
/suse/werner> PATH=/usr/local/bin:/usr/bin:/bin:. ksh
[EMAIL PROTECTED]:/suse/werner> echo | les
ksh: les: not found [No such file or directory]
[1]+ Stopped PATH=/usr/local/bin:/usr/bin:/bin:. ksh
Werner
--
Dr. Werner Fink <[EMAIL PROTECTED]>
SuSE LINUX Products GmbH, Maxfeldstrasse 5, Nuernberg, Germany
GF: Markus Rex, HRB 16746 (AG Nuernberg)
phone: +49-911-740-53-0, fax: +49-911-3206727, www.opensuse.org
------------------------------------------------------------------
"Having a smoking section in a restaurant is like having
a peeing section in a swimming pool." -- Edward Burr
_______________________________________________
ast-developers mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-developers