On Wed, Sep 28, 2016 at 10:35 AM, Abhijit Dasgupta <takd...@yahoo.com>
wrote:

> Configuration Information [Automatically generated, do not change]:
> Machine: x86_64
> OS: linux-gnu
> Compiler: gcc
> Compilation CFLAGS:  -DPROGRAM='bash' -DCONF_HOSTTYPE='x86_64'
> -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='x86_64-pc-linux-gnu'
> -DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash'
> -DSHELL -DHAVE_CONFIG_H   -I.  -I../. -I.././include -I.././lib
> -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4
> -Wformat -Werror=format-security -Wall
> uname output: Linux rho 3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8
> 09:43:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
> Machine Type: x86_64-pc-linux-gnu
>
> Bash Version: 4.3
> Patch Level: 11
> Release Status: release
>
> Description:
>
>   The following stopping issue is seen in recent bash versions:
>
>     $ { cmd_a; cmd_b | cmd_c; } | pager_prog
>
>     [1]+  Stopped                  { cmd_a; cmd_b | cmd_c; } | pager_prog
>
>   What is seen:  If a group of commands (in the above form) has its output
>   piped to a pager program (e.g. more, less, etc), then they get stopped
>   (by a SIGTTIN/SIGTTOU signal, while pager_prog accesses the tty).  This
>   happens if the first command of the group (cmd_a) is not a bash builtin
>   AND a pipeline occurs later in the group (cmd_b | cmd_c).
>
>   Puzzlingly, the issue does not arise if in the command group either the
>   first command (cmd_a) is a bash builtin or if none of the later commands
>   contains a pipe.
>
> Repeat-by:
>
>   Specific examples to reproduce/illustrate the issue:
>
>     { /bin/echo "Users"; who | sort; } | more                # Gets stopped
>     { builtin echo "Users"; who | sort; } | more          # Works fine
>
>     { date; who | sort; } | more                     # Gets stopped
>     { who | sort; date; } | more                     # Works fine
>
> Workaround:
>
>   The problem goes away if we enclose the individual pipelines
>   within the group (or the entire group) with a sh -c '...'.
>
> Additional notes:
>
> - The problem is still seen if the commands are grouped using parentheses
>   (subshell) instead of braces, and also when pipelined commands are
>   repeated in a loop, e.g.:
>
>     for n in 1 2 ; do cmd_a | cmd_b ; done | pager_prog
>
>     [1]+  Stopped                  for n in 1 2;
>     do
>         cmd_a | cmd_b;
>     done | pager_prog
>
> - The problem is seen in all terminal types (xterm, linux console VT, etc)
>
> - The problem is seen in bash versions 4.3.46 and 4.3.11, but not in 4.1.5.
>
>
> Thanks,
>
> Abhijit Dasgupta
>
> I cannot reproduce with either 4.3.46 or 4.3.11,  but my system is 32bits
and not 64bits.

Reply via email to