On Fri, Jul 18, 2014 at 04:05:32PM +0200, Werner Fink wrote:
> On Wed, Jul 16, 2014 at 11:01:58AM +0200, Werner Fink wrote:
> > Hi,
> >
> > with the following lines the ksh93u upto ksh93v- 2014-06-25 do hang:
> >
> > dd if=/dev/zero of=testfile.txt bs=1 count=65537
> > x=`cat testfile.txt | cat -`
> >
> > ... it works with count=65536 and/or
> >
> > x=$(cat testfile.txt | cat -)
> >
> > but AFAIK the backticks are very common and also supported.
> >
> > Btw: Even a Ctrl-C does *not* interrupt the running ksh:
> >
> > noether:~ # strace -p 31289
> > Process 31289 attached - interrupt to quit
> > write(1, "\0", 1) = ? ERESTARTSYS (To be restarted)
> > --- {si_signo=SIGINT, si_code=SI_KERNEL, si_value={int=1060230178,
> > ptr=0x7f943f31d422}} (Interrupt) ---
> > rt_sigreturn(0x7d6ef8) = -1 EINTR (Interrupted system
> > call)
> > write(1, "\0", 1) = ? ERESTARTSYS (To be restarted)
>
> After debugging I found that the following change
>
> ---------------------------* snip *---------------------------------------
> --- ksh93/src/cmd/ksh93/sh/macro.c
> +++ ksh93/src/cmd/ksh93/sh/macro.c 2014-07-18 13:50:47.590235743 +0000
> @@ -2198,7 +2198,7 @@ static void comsubst(Mac_t *mp,register
> mp->shp->inlineno = error_info.line+mp->shp->st.firstline;
> t = (Shnode_t*)sh_parse(mp->shp, sp,SH_EOF|SH_NL);
> mp->shp->inlineno = c;
> - type = 1;
> + type = 3;
> }
> #if KSHELL
> if(t)
> ---------------------------* snap *---------------------------------------
>
> would fix the problem. The question rises if this will cause other
> problems? AFAICS this causes that the subshell is using SH_PIPEFAIL
> and a smaller buffer for stdout as well as does not wait on the job.
Indeed:
test basic begins at 2014-07-18+14:20:30
basic.sh[447]: ``command substitution background process output error
-- got 'fore', expected 'foreback'
--
"Having a smoking section in a restaurant is like having
a peeing section in a swimming pool." -- Edward Burr
pgpo0Nr63B6he.pgp
Description: PGP signature
_______________________________________________ ast-developers mailing list [email protected] http://lists.research.att.com/mailman/listinfo/ast-developers
