On 2/28/14 2:48 AM, Moe Tunes wrote:
> Machine Type: i686-pc-linux-gnu
>
> Bash Version: 4.3
> Patch Level: 0
> Release Status: release
>
> Description:
> Pipes stop working in this version when DEBUG is used with trap in an
> interactive shell
It turns out that this is Linux-specific only to the extent that Linux
requires process group synchronization. One of the changes to trap
handling added a level of saving state that was redundant in the case of
the DEBUG trap, and that broke this synchronization. I've attached a
patch that fixes the problem.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/
*** ../bash-4.3/trap.c 2014-02-05 10:03:21.000000000 -0500
--- trap.c 2014-02-28 09:51:43.000000000 -0500
***************
*** 921,925 ****
#if defined (JOB_CONTROL)
! save_pipeline (1); /* XXX only provides one save level */
#endif
--- 921,926 ----
#if defined (JOB_CONTROL)
! if (sig != DEBUG_TRAP) /* run_debug_trap does this */
! save_pipeline (1); /* XXX only provides one save level */
#endif
***************
*** 941,945 ****
#if defined (JOB_CONTROL)
! restore_pipeline (1);
#endif
--- 942,947 ----
#if defined (JOB_CONTROL)
! if (sig != DEBUG_TRAP) /* run_debug_trap does this */
! restore_pipeline (1);
#endif