Configuration Information [Automatically generated, do not change]: Machine: i686 OS: linux-gnu Compiler: i686-pc-linux-gnu-gcc Compilation CFLAGS: -DPROGRAM='bash' -DCONF_HOSTTYPE='i686' -DCONF_OSTYPE='linux-gnu' -DCONF_MACHTYPE='i686-pc-linux-gnu' -DCONF_VENDOR='pc' -DLOCALEDIR='/usr/share/locale' -DPACKAGE='bash' -DSHELL -DHAVE_CONFIG_H -I. -I. -I./include -I./lib -DDEFAULT_PATH_VALUE='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' -DSTANDARD_UTILS_PATH='/bin:/usr/bin:/sbin:/usr/sbin' -DSYS_BASHRC='/etc/bash/bashrc' -DSYS_BASH_LOGOUT='/etc/bash/bash_logout' -DNON_INTERACTIVE_LOGIN_SHELLS -DSSH_SOURCE_BASHRC -march=prescott -O2 -pipe uname output: Linux home 2.6.28-hardened-r9 #1 SMP Fri Jun 19 19:08:07 EEST 2009 i686 Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz GenuineIntel GNU/Linux Machine Type: i686-pc-linux-gnu
Bash Version: 4.0 Patch Level: 28 Release Status: release Description: Looks like 'wait' command in bash-4 is broken: if used together with 'trap myhandler SIGCHLD' the 'wait' (without params) exit just after receiving first child exit, instead of waiting for all childs exit. This bug already reported in Gentoo Linux bugzilla at http://bugs.gentoo.org/show_bug.cgi?id=286360 but received no comments in 3 days, so I decide to report it to bash bugtracker too. Repeat-By: This command works differently on bash-3.2 and bash-4: $ time bash -c ' function spawn { echo SPAWN; sleep 1 & sleep 2 & } set -m spawn trap spawn SIGCHLD wait ' On app-shells/bash-3.2_p39 (and all previous bash I've used for years) it works as expected: ---cut--- SPAWN SPAWN [1] Done sleep 1 SPAWN [2] Done sleep 2 SPAWN [3] Done sleep 1 SPAWN [4] Done sleep 2 SPAWN SPAWN <Ctrl-C> real 0m3.288s user 0m0.004s sys 0m0.005s ---cut--- but on app-shells/bash-4.0_p28 it exit in 1 second without requiring to press Ctrl-C: ---cut--- SPAWN SPAWN real 0m1.004s user 0m0.001s sys 0m0.001s ---cut---