102-upstream-bash43-002.patch (1480B)
1 BASH PATCH REPORT 2 ================= 3 4 Bash-Release: 4.3 5 Patch-ID: bash43-002 6 7 Bug-Reported-by: Moe Tunes <moetunes42@gmail.com> 8 Bug-Reference-ID: <53103F49.3070100@gmail.com> 9 Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2014-02/msg00086.html 10 11 Bug-Description: 12 13 A change to save state while running the DEBUG trap caused pipelines to hang 14 on systems which need process group synchronization while building pipelines. 15 16 Patch (apply with `patch -p0'): 17 18 --- a/trap.c 19 +++ b/trap.c 20 @@ -920,7 +920,8 @@ _run_trap_internal (sig, tag) 21 subst_assign_varlist = 0; 22 23 #if defined (JOB_CONTROL) 24 - save_pipeline (1); /* XXX only provides one save level */ 25 + if (sig != DEBUG_TRAP) /* run_debug_trap does this */ 26 + save_pipeline (1); /* XXX only provides one save level */ 27 #endif 28 29 /* If we're in a function, make sure return longjmps come here, too. */ 30 @@ -940,7 +941,8 @@ _run_trap_internal (sig, tag) 31 trap_exit_value = last_command_exit_value; 32 33 #if defined (JOB_CONTROL) 34 - restore_pipeline (1); 35 + if (sig != DEBUG_TRAP) /* run_debug_trap does this */ 36 + restore_pipeline (1); 37 #endif 38 39 subst_assign_varlist = save_subst_varlist; 40 --- a/patchlevel.h 41 +++ b/patchlevel.h 42 @@ -25,6 +25,6 @@ 43 regexp `^#define[ ]*PATCHLEVEL', since that's what support/mkversion.sh 44 looks for to find the patch level (for the sccs version string). */ 45 46 -#define PATCHLEVEL 1 47 +#define PATCHLEVEL 2 48 49 #endif /* _PATCHLEVEL_H_ */