Package: bash; Maintainer for bash is Matthias Klose <doko@debian.org>; Source for bash is src:bash (PTS, buildd, popcon).
Reported by: Ian Jackson <ian@davenant.greenend.org.uk>
Date: Sun, 13 Aug 2006 13:33:11 UTC
Severity: normal
Found in version bash/2.05b-2-26
Reply or subscribe to this bug.
View this report as an mbox folder, status mbox, maintainer mbox
Report forwarded to debian-bugs-dist@lists.debian.org, Matthias Klose <doko@debian.org>:
Bug#382798; Package bash.
(full text, mbox, link).
Acknowledgement sent to Ian Jackson <ian@davenant.greenend.org.uk>:
New Bug report received and forwarded. Copy sent to Matthias Klose <doko@debian.org>.
(full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
Package: bash
Version: 2.05b-26
The script below should always exit with status 4. However, sometimes
one of the invocations of echo returns a nonzero status. My strace
suggests that this is due to improper handling of EINTR.
Ian.
-davenant:d> cat ~/junk/t.sh
#!/bin/sh
set -xe
exitstatus=0
l=`seq 1 20`
for cn in $l; do
echo "expire $cn"
sleep foo -- $cn &
jobs="$jobs $!"
done
echo "postloop $jobs" || exit 18
for job in $jobs; do
wait $job || exitstatus=4
done
if [ $exitstatus = 0 ]; then
echo "complete" || exit 19
else
echo "complete, but problems" || exit 20
fi
exit $exitstatus
-davenant:d> strace -ot ~/junk/t.sh
+ exitstatus=0
++ seq 1 20
+ l=1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
+ echo 'expire 1'
expire 1
+ sleep foo -- 1
+ jobs= 21182
+ echo 'expire 2'
expire 2
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 2
+ jobs= 21182 21183
+ echo 'expire 3'
expire 3
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 3
+ jobs= 21182 21183 21184
+ echo 'expire 4'
expire 4
+ sleep foo -- 4
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ jobs= 21182 21183 21184 21185
sleep: invalid time interval `foo'
+ echo 'expire 5'
Try `sleep --help' for more information.
expire 5
+ sleep foo -- 5
+ jobs= 21182 21183 21184 21185 21186
+ echo 'expire 6'
expire 6
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 6
+ jobs= 21182 21183 21184 21185 21186 21187
+ echo 'expire 7'
expire 7
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 7
+ jobs= 21182 21183 21184 21185 21186 21187 21188
+ echo 'expire 8'
expire 8
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 8
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189
+ echo 'expire 9'
expire 9
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 9
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190
+ echo 'expire 10'
expire 10
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 10
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191
+ echo 'expire 11'
expire 11
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 11
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192
+ echo 'expire 12'
expire 12
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 12
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193
+ echo 'expire 13'
expire 13
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 13
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194
+ echo 'expire 14'
expire 14
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 14
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195
+ echo 'expire 15'
expire 15
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 15
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196
+ echo 'expire 16'
expire 16
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 16
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197
+ echo 'expire 17'
expire 17
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 17
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197 21198
+ echo 'expire 18'
expire 18
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ sleep foo -- 18
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197 21198 21199
+ echo 'expire 19'
expire 19
sleep: invalid time interval `foo'
+ sleep foo -- 19
Try `sleep --help' for more information.
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197 21198 21199 21200
+ echo 'expire 20'
sleep: invalid time interval `foo'expire 20
Try `sleep --help' for more information.
+ sleep foo -- 20
+ jobs= 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197 21198 21199 21200 21201
sleep: invalid time interval `foo'
Try `sleep --help' for more information.
+ echo 'postloop 21182 21183 21184 21185 21186 21187 21188 21189 21190 21191 21192 21193 21194 21195 21196 21197 21198 21199 21200 21201'
+ exit 18
-davenant:d> less t
-davenant:d> cat t
execve("/u/ian/junk/t.sh", ["/u/ian/junk/t.sh"], [/* 45 vars */]) = 0
uname({sys="Linux", node="davenant", ...}) = 0
brk(0) = 0x80e5d14
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=63676, ...}) = 0
old_mmap(NULL, 63676, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libncurses.so.5", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\220\342"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=252592, ...}) = 0
old_mmap(NULL, 257868, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40028000
old_mmap(0x4005e000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x35000) = 0x4005e000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0p\34\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=9872, ...}) = 0
old_mmap(NULL, 8632, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40067000
old_mmap(0x40069000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2000) = 0x40069000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\360^\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1244752, ...}) = 0
old_mmap(NULL, 1254916, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4006a000
old_mmap(0x40192000, 32768, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x127000) = 0x40192000
old_mmap(0x4019a000, 9732, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4019a000
close(3) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4019d000
munmap(0x40018000, 63676) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
open("/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3
close(3) = 0
brk(0) = 0x80e5d14
brk(0) = 0x80e5d14
brk(0x80e6000) = 0x80e6000
brk(0) = 0x80e6000
brk(0x80e7000) = 0x80e7000
getuid32() = 100
getgid32() = 100
geteuid32() = 100
getegid32() = 100
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
time(NULL) = 1155474897
brk(0) = 0x80e7000
brk(0x80e8000) = 0x80e8000
brk(0) = 0x80e8000
brk(0x80e9000) = 0x80e9000
open("/etc/mtab", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=503, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40018000
read(3, "/dev/hda2 / ext3 rw 0 0\nproc /pr"..., 4096) = 503
close(3) = 0
munmap(0x40018000, 4096) = 0
open("/proc/meminfo", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40018000
read(3, " total: used: free:"..., 4096) = 523
close(3) = 0
munmap(0x40018000, 4096) = 0
brk(0) = 0x80e9000
brk(0x80ea000) = 0x80ea000
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGCHLD, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN}, {SIG_DFL}, 8) = 0
uname({sys="Linux", node="davenant", ...}) = 0
brk(0) = 0x80ea000
brk(0x80eb000) = 0x80eb000
stat64("/u/ian/junk/d", {st_mode=S_IFDIR|S_ISGID|0775, st_size=2312, ...}) = 0
stat64(".", {st_mode=S_IFDIR|S_ISGID|0775, st_size=2312, ...}) = 0
getpid() = 21180
getppid() = 21179
brk(0) = 0x80eb000
brk(0x80ec000) = 0x80ec000
getpgrp() = 21179
rt_sigaction(SIGCHLD, {0x8076f20, [], SA_RESTORER, 0x40093678}, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
open("/u/ian/junk/t.sh", O_RDONLY|O_LARGEFILE) = 3
ioctl(3, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbffff7ac) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(3, 0, [0], SEEK_CUR) = 0
read(3, "#!/bin/sh\nset -xe\n\nexitstatus=0\n"..., 80) = 80
_llseek(3, 0, [0], SEEK_SET) = 0
getrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024}) = 0
dup2(3, 255) = 255
close(3) = 0
fcntl64(255, F_SETFD, FD_CLOEXEC) = 0
fcntl64(255, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE)
fstat64(255, {st_mode=S_IFREG|0775, st_size=338, ...}) = 0
_llseek(255, 0, [0], SEEK_CUR) = 0
brk(0) = 0x80ec000
brk(0x80ed000) = 0x80ed000
brk(0) = 0x80ed000
brk(0x80ee000) = 0x80ee000
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
read(255, "#!/bin/sh\nset -xe\n\nexitstatus=0\n"..., 338) = 338
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
write(2, "+ exitstatus=0\n", 15) = 15
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
pipe([3, 4]) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
_llseek(255, -292, [46], SEEK_CUR) = 0
fork() = 21181
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
rt_sigaction(SIGCHLD, {0x8076f20, [], SA_RESTORER, 0x40093678}, {0x8076f20, [], SA_RESTORER, 0x40093678}, 8) = 0
close(4) = 0
read(3, "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14"..., 128) = 51
read(3, "", 128) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG) = 21181
waitpid(-1, 0xbffff214, WNOHANG) = -1 ECHILD (No child processes)
sigreturn() = ? (mask now [RTMIN])
close(3) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigaction(SIGINT, {0x8075fa0, [], SA_RESTORER, 0x40093678}, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, {0x8075fa0, [], SA_RESTORER, 0x40093678}, 8) = 0
write(2, "+ l=1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n1"..., 52) = 52
write(2, "20\n", 3) = 3
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
read(255, "for cn in $l; do\n\techo \"expire $"..., 338) = 292
brk(0) = 0x80ee000
brk(0x80ef000) = 0x80ef000
write(2, "+ echo \'expire 1\'\n", 18) = 18
write(1, "expire 1\n", 9) = 9
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
_llseek(255, -214, [124], SEEK_CUR) = 0
fork() = 21182
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182\n", 14) = 14
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 2\'\n", 18) = 18
write(1, "expire 2\n", 9) = 9
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21183
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21182
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183\n", 20) = 20
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 3\'\n", 18) = 18
write(1, "expire 3\n", 9) = 9
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21184
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21183
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184\n", 26) = 26
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 4\'\n", 18) = 18
write(1, "expire 4\n", 9) = 9
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21185
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21184
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185\n", 32) = 32
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 5\'\n", 18) = 18
write(1, "expire 5\n", 9) = 9
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21186
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21185
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 38) = 38
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 6\'\n", 18) = 18
write(1, "expire 6\n", 9) = 9
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21187
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21186
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 44) = 44
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 7\'\n", 18) = 18
write(1, "expire 7\n", 9) = 9
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21188
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21187
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 50) = 50
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 8\'\n", 18) = 18
write(1, "expire 8\n", 9) = 9
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21189
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21188
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 56) = 56
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 9\'\n", 18) = 18
write(1, "expire 9\n", 9) = 9
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21190
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21189
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 62) = 62
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 10\'\n", 19) = 19
write(1, "expire 10\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21191
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21190
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
brk(0) = 0x80ef000
brk(0x80f0000) = 0x80f0000
write(2, "+ jobs= 21182 21183 21184 21185 "..., 68) = 68
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 11\'\n", 19) = 19
write(1, "expire 11\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21192
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21191
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 74) = 74
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 12\'\n", 19) = 19
write(1, "expire 12\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21193
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21192
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 80) = 80
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 13\'\n", 19) = 19
write(1, "expire 13\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21194
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21193
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 86) = 86
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 14\'\n", 19) = 19
write(1, "expire 14\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21195
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21194
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 92) = 92
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 15\'\n", 19) = 19
write(1, "expire 15\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21196
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21195
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 98) = 98
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 16\'\n", 19) = 19
write(1, "expire 16\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21197
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21196
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 104) = 104
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 17\'\n", 19) = 19
write(1, "expire 17\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21198
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21197
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 110) = 110
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 18\'\n", 19) = 19
write(1, "expire 18\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21199
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21198
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 116) = 116
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 19\'\n", 19) = 19
write(1, "expire 19\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21200
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21199
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 122) = 122
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ echo \'expire 20\'\n", 19) = 19
write(1, "expire 20\n", 10) = 10
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [RTMIN], 8) = 0
fork() = 21201
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21200
waitpid(-1, 0xbffff24c, WNOHANG) = 0
sigreturn() = ? (mask now [RTMIN])
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
write(2, "+ jobs= 21182 21183 21184 21185 "..., 128) = 128
rt_sigprocmask(SIG_BLOCK, [CHLD], [RTMIN], 8) = 0
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
read(255, "\necho \"postloop $jobs\" || exit 1"..., 338) = 214
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0
brk(0) = 0x80f0000
brk(0x80f1000) = 0x80f1000
write(2, "+ echo \'postloop 21182 21183 21"..., 139) = 139
write(1, "postloop 21182 21183 21184 2118"..., 130) = ? ERESTARTSYS (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG) = 21201
waitpid(-1, 0xbffff2fc, WNOHANG) = -1 ECHILD (No child processes)
sigreturn() = ? (mask now [RTMIN])
write(2, "+ exit 18\n", 10) = 10
rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
exit_group(18) = ?
-davenant:d>
Information forwarded to debian-bugs-dist@lists.debian.org, Matthias Klose <doko@debian.org>:
Bug#382798; Package bash.
(full text, mbox, link).
Acknowledgement sent to Ian Jackson <ian@davenant.greenend.org.uk>:
Extra info received and forwarded to list. Copy sent to Matthias Klose <doko@debian.org>.
(full text, mbox, link).
Message #10 received at 382798@bugs.debian.org (full text, mbox, reply):
Looking through existing bug reports for something similar to my freshly reported problem #382798 (bash builtin echo fails to cope with signals arriving at the wrong moment), #341282 seems like a related problem. It may even have the same root cause. Ian.
Information forwarded to debian-bugs-dist@lists.debian.org, Matthias Klose <doko@debian.org>:
Bug#382798; Package bash.
(full text, mbox, link).
Acknowledgement sent to Ian Jackson <ian@davenant.greenend.org.uk>:
Extra info received and forwarded to list. Copy sent to Matthias Klose <doko@debian.org>.
(full text, mbox, link).
Message #15 received at 382798@bugs.debian.org (full text, mbox, reply):
Looking through existing bug reports for something similar to my freshly reported problem #382798 (bash builtin echo fails to cope with signals arriving at the wrong moment) I suspect that #332881 has the same root cause: * Note that the the (useless) use of <(cat ...), twice, causes two subprocesses which will run asynchronously with the cmp. * If one or both of these subprocesses terminate at the right moment, just as `echo' is executing, echo's write(2) is interrupted. This causes (I suspect) echo to fail. * Since the script has no `set -e' (a serious mistake by the submitter) it carries on blithely, despite the lost output. Ian.
Send a report that this bug log contains spam.
Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.