[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Segmentation fault with Solaris /usr/xpg4/bin/make
From: |
Stefano Lattarini |
Subject: |
Segmentation fault with Solaris /usr/xpg4/bin/make |
Date: |
Thu, 5 Aug 2010 19:40:15 +0200 |
User-agent: |
KMail/1.13.3 (Linux/2.6.30-2-686; KDE/4.4.4; i686; ; ) |
Hello automakers.
The test `parallel-tests9.test' fails on Solaris 10 when using
/usr/xpg4/bin/make as $MAKE, due to a submake invocation returning
an exit status `139' (i.e. a "Segmantation fault").
The test has a similar behaviour on Debian with Heirloom make as
$MAKE:
1. If the `MALLOC_CHECK_' env var is unset, the test fails due
to a submake invocation returning an exit status `134' (i.e.
an "Abort").
2. If the `MALLOC_CHECK_' env var is set to `0', the test fails
due to a submake invocation returning an exit status `139'
(i.e. a "Segementation fault" again).
3. If the `MALLOC_CHECK_' env var is set to `1', the test passes!
See the attachements for verbose logs.
Sadly, I still haven't found a minimal testcase exposing the problem.
I'll let you know if I find more details, or hopefully even a fix.
Regards,
Stefano
+ unset MALLOC_CHECK_
/home/stefano/src/automake/tests:/home/stefano/go/bin:/home/stefano/bin/linux:/home/stefano/bin:/usr/local/bin:/opt/bin:/usr/lib/jvm/java-6-sun-1.6.0.20/bin:/usr/games:/usr/bin:/usr/sbin:/bin:/sbin
=== Running test ./parallel-tests9.test
++ pwd
/home/stefano/src/automake/tests/parallel-tests9.dir
+ set -e
+ cat
+ cat
+ cat
+ cat
+ cat
+ chmod a+x foo.test bar.test baz.test
+ aclocal-1.11a -Werror
+ autoconf
+ automake-1.11a --foreign -Werror -Wall -a
+ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether heirloom-make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
+ heirloom-make check
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
+ cat stdout
heirloom-make bla
echo bla > bla
heirloom-make check-TESTS
PASS: foo.test
FAIL: bar.test
FAIL: baz.test
===================
2 of 3 tests failed
See ./mylog.log
===================
*** Error code 1 (bu21)
The following command caused the error:
case $- in *e*) set +e;; esac; \
list='foo.log bar.log baz.log'; \
results=`for f in $list; do \
read line < $f && echo "$line" || echo FAIL; \
done`; \
all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \
fail=`echo "$results" | grep -c '^FAIL'`; \
pass=`echo "$results" | grep -c '^PASS'`; \
skip=`echo "$results" | grep -c '^SKIP'`; \
xfail=`echo "$results" | grep -c '^XFAIL'`; \
xpass=`echo "$results" | grep -c '^XPASS'`; \
failures=`expr $fail + $xpass`; \
all=`expr $all - $skip`; \
if test "$all" -eq 1; then tests=test; All=; \
else tests=tests; All="All "; fi; \
case fail=$fail:xpass=$xpass:xfail=$xfail in \
fail=0:xpass=0:xfail=0) \
msg="$All$all $tests passed. "; \
exit=true;; \
fail=0:xpass=0:xfail=*) \
msg="$All$all $tests behaved as expected"; \
if test "$xfail" -eq 1; then xfailures=failure; \
else xfailures=failures; fi; \
msg="$msg ($xfail expected $xfailures). "; \
exit=true;; \
fail=*:xpass=0:xfail=*) \
msg="$fail of $all $tests failed. "; \
exit=false;; \
fail=*:xpass=*:xfail=*) \
msg="$failures of $all $tests did not behave as expected"; \
if test "$xpass" -eq 1; then xpasses=pass; \
else xpasses=passes; fi; \
msg="$msg ($xpass unexpected $xpasses). "; \
exit=false;; \
*) \
echo >&2 "incorrect case"; exit 4;; \
esac; \
if test "$skip" -ne 0; then \
if test "$skip" -eq 1; then \
msg="$msg($skip test was not run). "; \
else \
msg="$msg($skip tests were not run). "; \
fi; \
fi; \
{ \
echo "parallel-tests9 1.0: ./mylog.log" | \
sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//';
\
echo "$msg"; \
echo; \
echo ".. contents:: :depth: 2"; \
echo; \
for f in $list; do \
read line < $f; \
case $line in \
PASS:*|XFAIL:*);; \
*) echo; cat $f;; \
esac; \
done; \
} >mylog.log.tmp; \
mv mylog.log.tmp mylog.log; \
if test "$failures" -ne 0; then \
msg="${msg}See ./mylog.log. "; \
if test -n ""; then \
msg="${msg}Please report to . "; \
fi; \
fi; \
test x"$VERBOSE" = x || $exit || cat mylog.log; \
red=; grn=; lgn=; blu=; std=; \
if $exit; then \
echo -n "$grn"; \
else \
echo -n "$red"; \
fi; \
echo "$msg" | gawk '{ n = split($0, lines, "\\. ");
max = 0; for (i = 1; i <= n; ++i)
if (max < length(lines[i])) max =
length(lines[i]); for (i = 0; i < max; ++i)
line = line "="; print line;
for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line;
}'; \
echo -n "$std"; \
$exit
*** Error code 1 (bu21)
The following command caused the error:
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test .log = $f || echo $f; \
done | tr '\012\015' ' '`; \
heirloom-make mylog.log TEST_LOGS="$list"
*** Error code 1 (bu21)
+ heirloom-make recheck
*** glibc detected *** heirloom-make: free(): invalid next size (normal):
0x09d5a020 ***
======= Backtrace: =========
/lib/i686/cmov/libc.so.6(+0x6b321)[0xb7cf3321]
/lib/i686/cmov/libc.so.6(+0x6cb78)[0xb7cf4b78]
/lib/i686/cmov/libc.so.6(cfree+0x6d)[0xb7cf7c5d]
/lib/i686/cmov/libc.so.6(closedir+0x28)[0xb7d1b328]
heirloom-make[0x8050afc]
heirloom-make[0x804b8e6]
heirloom-make[0x80515b5]
heirloom-make[0x804e889]
heirloom-make[0x8060ac5]
heirloom-make[0x80541c4]
heirloom-make[0x8055420]
heirloom-make[0x8057acd]
/lib/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xb7c9ec76]
heirloom-make(__gxx_personality_v0+0xfd)[0x804a071]
======= Memory map: ========
08048000-08073000 r-xp 00000000 03:47 1176796 /opt/heirloom/bin/make
08073000-08075000 rw-p 0002b000 03:47 1176796 /opt/heirloom/bin/make
08075000-080ad000 rw-p 00000000 00:00 0
09d4e000-09d6f000 rw-p 00000000 00:00 0 [heap]
b7900000-b7921000 rw-p 00000000 00:00 0
b7921000-b7a00000 ---p 00000000 00:00 0
b7a42000-b7a7a000 r--p 002bf000 03:47 3365415 /usr/lib/locale/locale-archive
b7a7a000-b7c7a000 r--p 00000000 03:47 3365415 /usr/lib/locale/locale-archive
b7c7a000-b7c84000 r-xp 00000000 03:47 3170391
/lib/i686/cmov/libnss_files-2.11.2.so
b7c84000-b7c85000 r--p 00009000 03:47 3170391
/lib/i686/cmov/libnss_files-2.11.2.so
b7c85000-b7c86000 rw-p 0000a000 03:47 3170391
/lib/i686/cmov/libnss_files-2.11.2.so
b7c86000-b7c88000 rw-p 00000000 00:00 0
b7c88000-b7dc8000 r-xp 00000000 03:47 3170393 /lib/i686/cmov/libc-2.11.2.so
b7dc8000-b7dc9000 ---p 00140000 03:47 3170393 /lib/i686/cmov/libc-2.11.2.so
b7dc9000-b7dcb000 r--p 00140000 03:47 3170393 /lib/i686/cmov/libc-2.11.2.so
b7dcb000-b7dcc000 rw-p 00142000 03:47 3170393 /lib/i686/cmov/libc-2.11.2.so
b7dcc000-b7dcf000 rw-p 00000000 00:00 0
b7dcf000-b7dec000 r-xp 00000000 03:47 3156182 /lib/libgcc_s.so.1
b7dec000-b7ded000 rw-p 0001c000 03:47 3156182 /lib/libgcc_s.so.1
b7ded000-b7e11000 r-xp 00000000 03:47 3170377 /lib/i686/cmov/libm-2.11.2.so
b7e11000-b7e12000 r--p 00023000 03:47 3170377 /lib/i686/cmov/libm-2.11.2.so
b7e12000-b7e13000 rw-p 00024000 03:47 3170377 /lib/i686/cmov/libm-2.11.2.so
b7e13000-b7efc000 r-xp 00000000 03:47 1552397 /usr/lib/libstdc++.so.6.0.13
b7efc000-b7f00000 r--p 000e9000 03:47 1552397 /usr/lib/libstdc++.so.6.0.13
b7f00000-b7f01000 rw-p 000ed000 03:47 1552397 /usr/lib/libstdc++.so.6.0.13
b7f01000-b7f09000 rw-p 00000000 00:00 0
b7f23000-b7f25000 r-xp 00000000 03:47 1896416 /usr/lib/gconv/ISO8859-15.so
b7f25000-b7f26000 r--p 00001000 03:47 1896416 /usr/lib/gconv/ISO8859-15.so
b7f26000-b7f27000 rw-p 00002000 03:47 1896416 /usr/lib/gconv/ISO8859-15.so
b7f27000-b7f2e000 r--s 00000000 03:47 2222984
/usr/lib/gconv/gconv-modules.cache
b7f2e000-b7f2f000 r--p 0041e000 03:47 3365415 /usr/lib/locale/locale-archive
b7f2f000-b7f35000 r--p 0027e000 03:47 3365415 /usr/lib/locale/locale-archive
b7f35000-b7f36000 rw-p 00000000 00:00 0
b7f36000-b7f37000 r-xp 00000000 00:00 0 [vdso]
b7f37000-b7f52000 r-xp 00000000 03:47 3156756 /lib/ld-2.11.2.so
b7f52000-b7f53000 r--p 0001a000 03:47 3156756 /lib/ld-2.11.2.so
b7f53000-b7f54000 rw-p 0001b000 03:47 3156756 /lib/ld-2.11.2.so
bfae8000-bfb1b000 rw-p 00000000 00:00 0 [stack]
sh: line 4: 17938 Abortito heirloom-make TEST_LOGS="bar.log
baz.log " mylog.log TEST_LOGS="$list"
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
+ cat stdout
heirloom-make TEST_LOGS="bar.log baz.log " bla
`bla' is up to date.
heirloom-make TEST_LOGS="bar.log baz.log " check-TESTS
*** Error code 134 (bu21)
The following command caused the error:
list='bar.log baz.log'; \
list=`for f in $list; do \
test .log = $f || echo $f; \
done | tr '\012\015' ' '`; \
heirloom-make TEST_LOGS="bar.log baz.log " mylog.log TEST_LOGS="$list"
*** Error code 1 (bu21)
*** Error code 1 (bu21)
The following command caused the error:
target=`echo recheck | sed 's,^re,,'`; \
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test -f $f || continue; \
if read line < $f; then \
case $line in FAIL*|XPASS*) echo $f;; esac; \
else echo $f; fi; \
done | tr '\012\015' ' '`; \
heirloom-make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"'
+ grep foo.test stdout
+ grep bar.test stdout
+ Exit 1
+ set +e
+ exit 1
+ exit 1
+ exit_status=1
+ set +e
+ cd /home/stefano/src/automake/tests
+ case $exit_status,$keep_testdirs in
+ test 0 '!=' 0
+ echo 'parallel-tests9: exit 1'
parallel-tests9: exit 1
+ exit 1
+ export MALLOC_CHECK_=0
/home/stefano/src/automake/tests:/home/stefano/go/bin:/home/stefano/bin/linux:/home/stefano/bin:/usr/local/bin:/opt/bin:/usr/lib/jvm/java-6-sun-1.6.0.20/bin:/usr/games:/usr/bin:/usr/sbin:/bin:/sbin
=== Running test ./parallel-tests9.test
++ pwd
/home/stefano/src/automake/tests/parallel-tests9.dir
+ set -e
+ cat
+ cat
+ cat
+ cat
+ cat
+ chmod a+x foo.test bar.test baz.test
+ aclocal-1.11a -Werror
+ autoconf
+ automake-1.11a --foreign -Werror -Wall -a
+ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether heirloom-make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
+ heirloom-make check
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
+ cat stdout
heirloom-make bla
echo bla > bla
heirloom-make check-TESTS
PASS: foo.test
FAIL: bar.test
FAIL: baz.test
===================
2 of 3 tests failed
See ./mylog.log
===================
*** Error code 1 (bu21)
The following command caused the error:
case $- in *e*) set +e;; esac; \
list='foo.log bar.log baz.log'; \
results=`for f in $list; do \
read line < $f && echo "$line" || echo FAIL; \
done`; \
all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \
fail=`echo "$results" | grep -c '^FAIL'`; \
pass=`echo "$results" | grep -c '^PASS'`; \
skip=`echo "$results" | grep -c '^SKIP'`; \
xfail=`echo "$results" | grep -c '^XFAIL'`; \
xpass=`echo "$results" | grep -c '^XPASS'`; \
failures=`expr $fail + $xpass`; \
all=`expr $all - $skip`; \
if test "$all" -eq 1; then tests=test; All=; \
else tests=tests; All="All "; fi; \
case fail=$fail:xpass=$xpass:xfail=$xfail in \
fail=0:xpass=0:xfail=0) \
msg="$All$all $tests passed. "; \
exit=true;; \
fail=0:xpass=0:xfail=*) \
msg="$All$all $tests behaved as expected"; \
if test "$xfail" -eq 1; then xfailures=failure; \
else xfailures=failures; fi; \
msg="$msg ($xfail expected $xfailures). "; \
exit=true;; \
fail=*:xpass=0:xfail=*) \
msg="$fail of $all $tests failed. "; \
exit=false;; \
fail=*:xpass=*:xfail=*) \
msg="$failures of $all $tests did not behave as expected"; \
if test "$xpass" -eq 1; then xpasses=pass; \
else xpasses=passes; fi; \
msg="$msg ($xpass unexpected $xpasses). "; \
exit=false;; \
*) \
echo >&2 "incorrect case"; exit 4;; \
esac; \
if test "$skip" -ne 0; then \
if test "$skip" -eq 1; then \
msg="$msg($skip test was not run). "; \
else \
msg="$msg($skip tests were not run). "; \
fi; \
fi; \
{ \
echo "parallel-tests9 1.0: ./mylog.log" | \
sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//';
\
echo "$msg"; \
echo; \
echo ".. contents:: :depth: 2"; \
echo; \
for f in $list; do \
read line < $f; \
case $line in \
PASS:*|XFAIL:*);; \
*) echo; cat $f;; \
esac; \
done; \
} >mylog.log.tmp; \
mv mylog.log.tmp mylog.log; \
if test "$failures" -ne 0; then \
msg="${msg}See ./mylog.log. "; \
if test -n ""; then \
msg="${msg}Please report to . "; \
fi; \
fi; \
test x"$VERBOSE" = x || $exit || cat mylog.log; \
red=; grn=; lgn=; blu=; std=; \
if $exit; then \
echo -n "$grn"; \
else \
echo -n "$red"; \
fi; \
echo "$msg" | gawk '{ n = split($0, lines, "\\. ");
max = 0; for (i = 1; i <= n; ++i)
if (max < length(lines[i])) max =
length(lines[i]); for (i = 0; i < max; ++i)
line = line "="; print line;
for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line;
}'; \
echo -n "$std"; \
$exit
*** Error code 1 (bu21)
The following command caused the error:
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test .log = $f || echo $f; \
done | tr '\012\015' ' '`; \
heirloom-make mylog.log TEST_LOGS="$list"
*** Error code 1 (bu21)
+ heirloom-make recheck
sh: line 4: 23267 Segmentation fault heirloom-make TEST_LOGS="bar.log
baz.log " mylog.log TEST_LOGS="$list"
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
+ cat stdout
heirloom-make TEST_LOGS="bar.log baz.log " bla
`bla' is up to date.
heirloom-make TEST_LOGS="bar.log baz.log " check-TESTS
*** Error code 139 (bu21)
The following command caused the error:
list='bar.log baz.log'; \
list=`for f in $list; do \
test .log = $f || echo $f; \
done | tr '\012\015' ' '`; \
heirloom-make TEST_LOGS="bar.log baz.log " mylog.log TEST_LOGS="$list"
*** Error code 1 (bu21)
*** Error code 1 (bu21)
The following command caused the error:
target=`echo recheck | sed 's,^re,,'`; \
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test -f $f || continue; \
if read line < $f; then \
case $line in FAIL*|XPASS*) echo $f;; esac; \
else echo $f; fi; \
done | tr '\012\015' ' '`; \
heirloom-make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"'
+ grep foo.test stdout
+ grep bar.test stdout
+ Exit 1
+ set +e
+ exit 1
+ exit 1
+ exit_status=1
+ set +e
+ cd /home/stefano/src/automake/tests
+ case $exit_status,$keep_testdirs in
+ test 0 '!=' 0
+ echo 'parallel-tests9: exit 1'
parallel-tests9: exit 1
+ exit 1
+ export MALLOC_CHECK_=1
/home/stefano/src/automake/tests:/home/stefano/go/bin:/home/stefano/bin/linux:/home/stefano/bin:/usr/local/bin:/opt/bin:/usr/lib/jvm/java-6-sun-1.6.0.20/bin:/usr/games:/usr/bin:/usr/sbin:/bin:/sbin
=== Running test ./parallel-tests9.test
++ pwd
/home/stefano/src/automake/tests/parallel-tests9.dir
+ set -e
+ cat
+ cat
+ cat
+ cat
+ cat
+ chmod a+x foo.test bar.test baz.test
+ aclocal-1.11a -Werror
+ autoconf
+ automake-1.11a --foreign -Werror -Wall -a
+ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether heirloom-make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
+ heirloom-make check
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
+ cat stdout
heirloom-make bla
echo bla > bla
heirloom-make check-TESTS
PASS: foo.test
FAIL: bar.test
FAIL: baz.test
===================
2 of 3 tests failed
See ./mylog.log
===================
*** Error code 1 (bu21)
The following command caused the error:
case $- in *e*) set +e;; esac; \
list='foo.log bar.log baz.log'; \
results=`for f in $list; do \
read line < $f && echo "$line" || echo FAIL; \
done`; \
all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \
fail=`echo "$results" | grep -c '^FAIL'`; \
pass=`echo "$results" | grep -c '^PASS'`; \
skip=`echo "$results" | grep -c '^SKIP'`; \
xfail=`echo "$results" | grep -c '^XFAIL'`; \
xpass=`echo "$results" | grep -c '^XPASS'`; \
failures=`expr $fail + $xpass`; \
all=`expr $all - $skip`; \
if test "$all" -eq 1; then tests=test; All=; \
else tests=tests; All="All "; fi; \
case fail=$fail:xpass=$xpass:xfail=$xfail in \
fail=0:xpass=0:xfail=0) \
msg="$All$all $tests passed. "; \
exit=true;; \
fail=0:xpass=0:xfail=*) \
msg="$All$all $tests behaved as expected"; \
if test "$xfail" -eq 1; then xfailures=failure; \
else xfailures=failures; fi; \
msg="$msg ($xfail expected $xfailures). "; \
exit=true;; \
fail=*:xpass=0:xfail=*) \
msg="$fail of $all $tests failed. "; \
exit=false;; \
fail=*:xpass=*:xfail=*) \
msg="$failures of $all $tests did not behave as expected"; \
if test "$xpass" -eq 1; then xpasses=pass; \
else xpasses=passes; fi; \
msg="$msg ($xpass unexpected $xpasses). "; \
exit=false;; \
*) \
echo >&2 "incorrect case"; exit 4;; \
esac; \
if test "$skip" -ne 0; then \
if test "$skip" -eq 1; then \
msg="$msg($skip test was not run). "; \
else \
msg="$msg($skip tests were not run). "; \
fi; \
fi; \
{ \
echo "parallel-tests9 1.0: ./mylog.log" | \
sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//';
\
echo "$msg"; \
echo; \
echo ".. contents:: :depth: 2"; \
echo; \
for f in $list; do \
read line < $f; \
case $line in \
PASS:*|XFAIL:*);; \
*) echo; cat $f;; \
esac; \
done; \
} >mylog.log.tmp; \
mv mylog.log.tmp mylog.log; \
if test "$failures" -ne 0; then \
msg="${msg}See ./mylog.log. "; \
if test -n ""; then \
msg="${msg}Please report to . "; \
fi; \
fi; \
test x"$VERBOSE" = x || $exit || cat mylog.log; \
red=; grn=; lgn=; blu=; std=; \
if $exit; then \
echo -n "$grn"; \
else \
echo -n "$red"; \
fi; \
echo "$msg" | gawk '{ n = split($0, lines, "\\. ");
max = 0; for (i = 1; i <= n; ++i)
if (max < length(lines[i])) max =
length(lines[i]); for (i = 0; i < max; ++i)
line = line "="; print line;
for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line;
}'; \
echo -n "$std"; \
$exit
*** Error code 1 (bu21)
The following command caused the error:
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test .log = $f || echo $f; \
done | tr '\012\015' ' '`; \
heirloom-make mylog.log TEST_LOGS="$list"
*** Error code 1 (bu21)
+ heirloom-make recheck
*** glibc detected *** heirloom-make: malloc: top chunk is corrupt: 0x09a75410
***
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
+ cat stdout
heirloom-make TEST_LOGS="bar.log baz.log " bla
`bla' is up to date.
heirloom-make TEST_LOGS="bar.log baz.log " check-TESTS
FAIL: bar.test
FAIL: baz.test
===================
2 of 2 tests failed
See ./mylog.log
===================
*** Error code 1 (bu21)
The following command caused the error:
case $- in *e*) set +e;; esac; \
list='bar.log baz.log'; \
results=`for f in $list; do \
read line < $f && echo "$line" || echo FAIL; \
done`; \
all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \
fail=`echo "$results" | grep -c '^FAIL'`; \
pass=`echo "$results" | grep -c '^PASS'`; \
skip=`echo "$results" | grep -c '^SKIP'`; \
xfail=`echo "$results" | grep -c '^XFAIL'`; \
xpass=`echo "$results" | grep -c '^XPASS'`; \
failures=`expr $fail + $xpass`; \
all=`expr $all - $skip`; \
if test "$all" -eq 1; then tests=test; All=; \
else tests=tests; All="All "; fi; \
case fail=$fail:xpass=$xpass:xfail=$xfail in \
fail=0:xpass=0:xfail=0) \
msg="$All$all $tests passed. "; \
exit=true;; \
fail=0:xpass=0:xfail=*) \
msg="$All$all $tests behaved as expected"; \
if test "$xfail" -eq 1; then xfailures=failure; \
else xfailures=failures; fi; \
msg="$msg ($xfail expected $xfailures). "; \
exit=true;; \
fail=*:xpass=0:xfail=*) \
msg="$fail of $all $tests failed. "; \
exit=false;; \
fail=*:xpass=*:xfail=*) \
msg="$failures of $all $tests did not behave as expected"; \
if test "$xpass" -eq 1; then xpasses=pass; \
else xpasses=passes; fi; \
msg="$msg ($xpass unexpected $xpasses). "; \
exit=false;; \
*) \
echo >&2 "incorrect case"; exit 4;; \
esac; \
if test "$skip" -ne 0; then \
if test "$skip" -eq 1; then \
msg="$msg($skip test was not run). "; \
else \
msg="$msg($skip tests were not run). "; \
fi; \
fi; \
{ \
echo "parallel-tests9 1.0: ./mylog.log" | \
sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//';
\
echo "$msg"; \
echo; \
echo ".. contents:: :depth: 2"; \
echo; \
for f in $list; do \
read line < $f; \
case $line in \
PASS:*|XFAIL:*);; \
*) echo; cat $f;; \
esac; \
done; \
} >mylog.log.tmp; \
mv mylog.log.tmp mylog.log; \
if test "$failures" -ne 0; then \
msg="${msg}See ./mylog.log. "; \
if test -n ""; then \
msg="${msg}Please report to . "; \
fi; \
fi; \
test x"$VERBOSE" = x || $exit || cat mylog.log; \
red=; grn=; lgn=; blu=; std=; \
if $exit; then \
echo -n "$grn"; \
else \
echo -n "$red"; \
fi; \
echo "$msg" | gawk '{ n = split($0, lines, "\\. ");
max = 0; for (i = 1; i <= n; ++i)
if (max < length(lines[i])) max =
length(lines[i]); for (i = 0; i < max; ++i)
line = line "="; print line;
for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line;
}'; \
echo -n "$std"; \
$exit
*** Error code 1 (bu21)
The following command caused the error:
list='bar.log baz.log'; \
list=`for f in $list; do \
test .log = $f || echo $f; \
done | tr '\012\015' ' '`; \
heirloom-make TEST_LOGS="bar.log baz.log " mylog.log TEST_LOGS="$list"
*** Error code 1 (bu21)
*** Error code 1 (bu21)
The following command caused the error:
target=`echo recheck | sed 's,^re,,'`; \
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test -f $f || continue; \
if read line < $f; then \
case $line in FAIL*|XPASS*) echo $f;; esac; \
else echo $f; fi; \
done | tr '\012\015' ' '`; \
heirloom-make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"'
+ grep foo.test stdout
+ grep bar.test stdout
FAIL: bar.test
+ grep baz.test stdout
FAIL: baz.test
+ grep '2 of 2.*failed' stdout
2 of 2 tests failed
+ chmod a-r foo.log
+ test '!' -r foo.log
+ heirloom-make recheck
sh: line 7: foo.log: Permission denied
*** glibc detected *** heirloom-make: malloc: top chunk is corrupt: 0x0910d420
***
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
Current working directory /home/stefano/src/automake/tests/parallel-tests9.dir
heirloom-make: fatal error.
+ cat stdout
heirloom-make TEST_LOGS="foo.log bar.log baz.log " bla
`bla' is up to date.
heirloom-make TEST_LOGS="foo.log bar.log baz.log " check-TESTS
PASS: foo.test
FAIL: bar.test
FAIL: baz.test
===================
2 of 3 tests failed
See ./mylog.log
===================
*** Error code 1 (bu21)
The following command caused the error:
case $- in *e*) set +e;; esac; \
list='foo.log bar.log baz.log'; \
results=`for f in $list; do \
read line < $f && echo "$line" || echo FAIL; \
done`; \
all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \
fail=`echo "$results" | grep -c '^FAIL'`; \
pass=`echo "$results" | grep -c '^PASS'`; \
skip=`echo "$results" | grep -c '^SKIP'`; \
xfail=`echo "$results" | grep -c '^XFAIL'`; \
xpass=`echo "$results" | grep -c '^XPASS'`; \
failures=`expr $fail + $xpass`; \
all=`expr $all - $skip`; \
if test "$all" -eq 1; then tests=test; All=; \
else tests=tests; All="All "; fi; \
case fail=$fail:xpass=$xpass:xfail=$xfail in \
fail=0:xpass=0:xfail=0) \
msg="$All$all $tests passed. "; \
exit=true;; \
fail=0:xpass=0:xfail=*) \
msg="$All$all $tests behaved as expected"; \
if test "$xfail" -eq 1; then xfailures=failure; \
else xfailures=failures; fi; \
msg="$msg ($xfail expected $xfailures). "; \
exit=true;; \
fail=*:xpass=0:xfail=*) \
msg="$fail of $all $tests failed. "; \
exit=false;; \
fail=*:xpass=*:xfail=*) \
msg="$failures of $all $tests did not behave as expected"; \
if test "$xpass" -eq 1; then xpasses=pass; \
else xpasses=passes; fi; \
msg="$msg ($xpass unexpected $xpasses). "; \
exit=false;; \
*) \
echo >&2 "incorrect case"; exit 4;; \
esac; \
if test "$skip" -ne 0; then \
if test "$skip" -eq 1; then \
msg="$msg($skip test was not run). "; \
else \
msg="$msg($skip tests were not run). "; \
fi; \
fi; \
{ \
echo "parallel-tests9 1.0: ./mylog.log" | \
sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//';
\
echo "$msg"; \
echo; \
echo ".. contents:: :depth: 2"; \
echo; \
for f in $list; do \
read line < $f; \
case $line in \
PASS:*|XFAIL:*);; \
*) echo; cat $f;; \
esac; \
done; \
} >mylog.log.tmp; \
mv mylog.log.tmp mylog.log; \
if test "$failures" -ne 0; then \
msg="${msg}See ./mylog.log. "; \
if test -n ""; then \
msg="${msg}Please report to . "; \
fi; \
fi; \
test x"$VERBOSE" = x || $exit || cat mylog.log; \
red=; grn=; lgn=; blu=; std=; \
if $exit; then \
echo -n "$grn"; \
else \
echo -n "$red"; \
fi; \
echo "$msg" | gawk '{ n = split($0, lines, "\\. ");
max = 0; for (i = 1; i <= n; ++i)
if (max < length(lines[i])) max =
length(lines[i]); for (i = 0; i < max; ++i)
line = line "="; print line;
for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line;
}'; \
echo -n "$std"; \
$exit
*** Error code 1 (bu21)
The following command caused the error:
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test .log = $f || echo $f; \
done | tr '\012\015' ' '`; \
heirloom-make TEST_LOGS="foo.log bar.log baz.log " mylog.log TEST_LOGS="$list"
*** Error code 1 (bu21)
*** Error code 1 (bu21)
The following command caused the error:
target=`echo recheck | sed 's,^re,,'`; \
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test -f $f || continue; \
if read line < $f; then \
case $line in FAIL*|XPASS*) echo $f;; esac; \
else echo $f; fi; \
done | tr '\012\015' ' '`; \
heirloom-make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"'
+ grep foo.test stdout
PASS: foo.test
+ heirloom-make clean
test -z "bla" || rm -f bla
test -z "foo.log bar.log baz.log" || rm -f foo.log bar.log baz.log
test -z "foo.log-t bar.log-t baz.log-t" || rm -f foo.log-t bar.log-t
baz.log-t
test -z "mylog.html" || rm -f mylog.html
test -z "mylog.log" || rm -f mylog.log
+ heirloom-make recheck
heirloom-make TEST_LOGS="" bla
echo bla > bla
heirloom-make TEST_LOGS="" check-TESTS
==================
All 0 tests passed
==================
+ test -f bla
+ test '!' -f foo.log
+ test '!' -f bar.log
+ test '!' -f baz.log
+ test -f mylog.log
+ :
+ exit_status=0
+ set +e
+ cd /home/stefano/src/automake/tests
+ case $exit_status,$keep_testdirs in
+ find parallel-tests9.dir -type d '!' -perm -200 -exec chmod u+w '{}' ';'
+ rm -rf parallel-tests9.dir
+ test 0 '!=' 0
+ echo 'parallel-tests9: exit 0'
parallel-tests9: exit 0
+ exit 0
FAIL: parallel-tests9.test (exit: 1)
====================================
=== Running test ../../tests/parallel-tests9.test
/scratch/latta/tmp/automake-1.11a/_build/tests:/home/latta/dev/xpath/automake:/usr/bin:/usr/sbin:/sbin:/usr/ucb
+ pwd
/scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir
+ set -e
+ cat
+ cat
+ cat
+ cat
+ cat
+ chmod a+x foo.test bar.test baz.test
+ aclocal-1.11a -Werror
+ autoconf
+ automake-1.11a --foreign -Werror -Wall -a
+ ./configure
checking for a BSD-compatible install... ./install-sh -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /opt/sfw/bin/mkdir -p
checking for gawk... no
checking for mawk... no
checking for nawk... nawk
checking whether make sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
+ run_command -e FAIL make check
+ set +x
+ cat stderr
make: Fatal error: Command failed for target `mylog.log'
Current working directory
/scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir
make: Fatal error: Command failed for target `check-TESTS'
Current working directory
/scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir
make: Fatal error: Command failed for target `check-am'
+ cat stdout
/usr/xpg4/bin/make bla
echo bla > bla
/usr/xpg4/bin/make check-TESTS
PASS: foo.test
FAIL: bar.test
FAIL: baz.test
===================
2 of 3 tests failed
See ./mylog.log
===================
*** Error code 1
The following command caused the error:
case $- in *e*) set +e;; esac; \
list='foo.log bar.log baz.log'; \
results=`for f in $list; do \
read line < $f && echo "$line" || echo FAIL; \
done`; \
all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \
fail=`echo "$results" | grep -c '^FAIL'`; \
pass=`echo "$results" | grep -c '^PASS'`; \
skip=`echo "$results" | grep -c '^SKIP'`; \
xfail=`echo "$results" | grep -c '^XFAIL'`; \
xpass=`echo "$results" | grep -c '^XPASS'`; \
failures=`expr $fail + $xpass`; \
all=`expr $all - $skip`; \
if test "$all" -eq 1; then tests=test; All=; \
else tests=tests; All="All "; fi; \
case fail=$fail:xpass=$xpass:xfail=$xfail in \
fail=0:xpass=0:xfail=0) \
msg="$All$all $tests passed. "; \
exit=true;; \
fail=0:xpass=0:xfail=*) \
msg="$All$all $tests behaved as expected"; \
if test "$xfail" -eq 1; then xfailures=failure; \
else xfailures=failures; fi; \
msg="$msg ($xfail expected $xfailures). "; \
exit=true;; \
fail=*:xpass=0:xfail=*) \
msg="$fail of $all $tests failed. "; \
exit=false;; \
fail=*:xpass=*:xfail=*) \
msg="$failures of $all $tests did not behave as expected"; \
if test "$xpass" -eq 1; then xpasses=pass; \
else xpasses=passes; fi; \
msg="$msg ($xpass unexpected $xpasses). "; \
exit=false;; \
*) \
echo >&2 "incorrect case"; exit 4;; \
esac; \
if test "$skip" -ne 0; then \
if test "$skip" -eq 1; then \
msg="$msg($skip test was not run). "; \
else \
msg="$msg($skip tests were not run). "; \
fi; \
fi; \
{ \
echo "parallel-tests9 1.0: ./mylog.log" | \
sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//';
\
echo "$msg"; \
echo; \
echo ".. contents:: :depth: 2"; \
echo; \
for f in $list; do \
read line < $f; \
case $line in \
PASS:*|XFAIL:*);; \
*) echo; cat $f;; \
esac; \
done; \
} >mylog.log.tmp; \
mv mylog.log.tmp mylog.log; \
if test "$failures" -ne 0; then \
msg="${msg}See ./mylog.log. "; \
if test -n ""; then \
msg="${msg}Please report to . "; \
fi; \
fi; \
test x"$VERBOSE" = x || $exit || cat mylog.log; \
red=; grn=; lgn=; blu=; std=; \
if $exit; then \
echo -n "$grn"; \
else \
echo -n "$red"; \
fi; \
echo "$msg" | nawk '{ n = split($0, lines, "\\. ");
max = 0; for (i = 1; i <= n; ++i)
if (max < length(lines[i])) max =
length(lines[i]); for (i = 0; i < max; ++i)
line = line "="; print line;
for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line;
}'; \
echo -n "$std"; \
$exit
*** Error code 1
The following command caused the error:
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test .log = $f || echo $f; \
done | tr '\012\015' ' '`; \
/usr/xpg4/bin/make mylog.log TEST_LOGS="$list"
*** Error code 1
+ set +x
run_command: exit status 1 (expecting FAIL)
+ test xyes = xyes
+ run_command -e FAIL make recheck
+ set +x
+ cat stderr
make: Fatal error: Command failed for target `mylog.log'
Current working directory
/scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir
make: Fatal error: Command failed for target `check-TESTS'
Current working directory
/scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir
make: Fatal error: Command failed for target `check-am'
Current working directory
/scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir
make: Fatal error: Command failed for target `recheck'
+ cat stdout
/usr/xpg4/bin/make TEST_LOGS="bar.log baz.log " bla
`bla' is updated.
/usr/xpg4/bin/make TEST_LOGS="bar.log baz.log " check-TESTS
FAIL: bar.test
FAIL: baz.test
===================
2 of 2 tests failed
See ./mylog.log
===================
*** Error code 1
The following command caused the error:
case $- in *e*) set +e;; esac; \
list='bar.log baz.log'; \
results=`for f in $list; do \
read line < $f && echo "$line" || echo FAIL; \
done`; \
all=`echo "$results" | sed '/^$/d' | wc -l | sed -e 's/^[ ]*//'`; \
fail=`echo "$results" | grep -c '^FAIL'`; \
pass=`echo "$results" | grep -c '^PASS'`; \
skip=`echo "$results" | grep -c '^SKIP'`; \
xfail=`echo "$results" | grep -c '^XFAIL'`; \
xpass=`echo "$results" | grep -c '^XPASS'`; \
failures=`expr $fail + $xpass`; \
all=`expr $all - $skip`; \
if test "$all" -eq 1; then tests=test; All=; \
else tests=tests; All="All "; fi; \
case fail=$fail:xpass=$xpass:xfail=$xfail in \
fail=0:xpass=0:xfail=0) \
msg="$All$all $tests passed. "; \
exit=true;; \
fail=0:xpass=0:xfail=*) \
msg="$All$all $tests behaved as expected"; \
if test "$xfail" -eq 1; then xfailures=failure; \
else xfailures=failures; fi; \
msg="$msg ($xfail expected $xfailures). "; \
exit=true;; \
fail=*:xpass=0:xfail=*) \
msg="$fail of $all $tests failed. "; \
exit=false;; \
fail=*:xpass=*:xfail=*) \
msg="$failures of $all $tests did not behave as expected"; \
if test "$xpass" -eq 1; then xpasses=pass; \
else xpasses=passes; fi; \
msg="$msg ($xpass unexpected $xpasses). "; \
exit=false;; \
*) \
echo >&2 "incorrect case"; exit 4;; \
esac; \
if test "$skip" -ne 0; then \
if test "$skip" -eq 1; then \
msg="$msg($skip test was not run). "; \
else \
msg="$msg($skip tests were not run). "; \
fi; \
fi; \
{ \
echo "parallel-tests9 1.0: ./mylog.log" | \
sed 's/.*/ & /;h;s/./=/g;p;x;p;g;p;s/.*//';
\
echo "$msg"; \
echo; \
echo ".. contents:: :depth: 2"; \
echo; \
for f in $list; do \
read line < $f; \
case $line in \
PASS:*|XFAIL:*);; \
*) echo; cat $f;; \
esac; \
done; \
} >mylog.log.tmp; \
mv mylog.log.tmp mylog.log; \
if test "$failures" -ne 0; then \
msg="${msg}See ./mylog.log. "; \
if test -n ""; then \
msg="${msg}Please report to . "; \
fi; \
fi; \
test x"$VERBOSE" = x || $exit || cat mylog.log; \
red=; grn=; lgn=; blu=; std=; \
if $exit; then \
echo -n "$grn"; \
else \
echo -n "$red"; \
fi; \
echo "$msg" | nawk '{ n = split($0, lines, "\\. ");
max = 0; for (i = 1; i <= n; ++i)
if (max < length(lines[i])) max =
length(lines[i]); for (i = 0; i < max; ++i)
line = line "="; print line;
for (i = 1; i <= n; ++i) if (lines[i]) print lines[i]; print line;
}'; \
echo -n "$std"; \
$exit
*** Error code 1
The following command caused the error:
list='bar.log baz.log'; \
list=`for f in $list; do \
test .log = $f || echo $f; \
done | tr '\012\015' ' '`; \
/usr/xpg4/bin/make TEST_LOGS="bar.log baz.log " mylog.log TEST_LOGS="$list"
*** Error code 1
*** Error code 1
The following command caused the error:
target=`echo recheck | sed 's,^re,,'`; \
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test -f $f || continue; \
if read line < $f; then \
case $line in FAIL*|XPASS*) echo $f;; esac; \
else echo $f; fi; \
done | tr '\012\015' ' '`; \
/usr/xpg4/bin/make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"'
+ set +x
run_command: exit status 1 (expecting FAIL)
+ test xyes = xyes
+ grep foo.test stdout
+ grep bar.test stdout
FAIL: bar.test
+ grep baz.test stdout
FAIL: baz.test
+ grep 2 of 2.*failed stdout
2 of 2 tests failed
+ chmod a-r foo.log
+ test ! -r foo.log
+ run_command -e FAIL make recheck
+ set +x
+ cat stderr
bash: line 7: foo.log: Permission denied
bash: line 4: 14242 Segmentation Fault (core dumped) /usr/xpg4/bin/make
TEST_LOGS="foo.log bar.log baz.log " mylog.log TEST_LOGS="$list"
make: Fatal error: Command failed for target `check-TESTS'
Current working directory
/scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir
make: Fatal error: Command failed for target `check-am'
Current working directory
/scratch/latta/tmp/automake-1.11a/_build/tests/parallel-tests9.dir
make: Fatal error: Command failed for target `recheck'
+ cat stdout
/usr/xpg4/bin/make TEST_LOGS="foo.log bar.log baz.log " bla
`bla' is updated.
/usr/xpg4/bin/make TEST_LOGS="foo.log bar.log baz.log " check-TESTS
*** Error code 139
The following command caused the error:
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test .log = $f || echo $f; \
done | tr '\012\015' ' '`; \
/usr/xpg4/bin/make TEST_LOGS="foo.log bar.log baz.log " mylog.log
TEST_LOGS="$list"
*** Error code 1
*** Error code 1
The following command caused the error:
target=`echo recheck | sed 's,^re,,'`; \
list='foo.log bar.log baz.log'; \
list=`for f in $list; do \
test -f $f || continue; \
if read line < $f; then \
case $line in FAIL*|XPASS*) echo $f;; esac; \
else echo $f; fi; \
done | tr '\012\015' ' '`; \
/usr/xpg4/bin/make $target AM_MAKEFLAGS=' TEST_LOGS="'"$list"'"'
+ set +x
run_command: exit status 1 (expecting FAIL)
+ test xyes = xyes
+ grep foo.test stdout
+ Exit 1
+ set +e
+ exit 1
+ exit 1
exit_status=1
+ set +e
+ cd /scratch/latta/tmp/automake-1.11a/_build/tests
+ test 0 != 0
+ echo parallel-tests9: exit 1
parallel-tests9: exit 1
+ exit 1
- Segmentation fault with Solaris /usr/xpg4/bin/make,
Stefano Lattarini <=