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

Reply via email to