Subject: bug#8788: closed (Re: bug#8788: Weird testsuite failure on NetBSD (parallel tests, background processes))

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 20 Oct 2011 19:51:02 +0000

Your bug report

#8788: Weird testsuite failure on NetBSD (parallel tests, background processes)

which was filed against the automake package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
8788: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8788
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#8788: Weird testsuite failure on NetBSD (parallel tests, background processes)
From: Stefano Lattarini <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Thu, 20 Oct 2011 21:48:48 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

On Tuesday 18 October 2011, Stefano Lattarini wrote:
> On Tuesday 18 October 2011, Stefano Lattarini wrote:
> > Reference:
> >  <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=8788>
> >
> > [SNIP]
> >
> > Now, the right fix for the bug is *not* to work around this behaviour
> > of the Korn shell; rather, we should fix the suspicious logic of the
> > `parallel-tests3.test' script, which was also causing a testsuite hang
> > on FreeBSD.  Patch coming up shortly.
> > 
> And here is the promised patch (see attachement).  I will allow a couple of
> days for reviews before pushing.
> 
Pushed now.  I'm thus also closing bug#8788.

Regards,
  Stefano

Subject: Weird testsuite failure on NetBSD (parallel tests, background processes)
From: Stefano Lattarini <[email-masked]>
To: [email-masked]
Date: Thu, 2 Jun 2011 18:43:53 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello automakers.

While teststing the `testsuite-work' branch on NetBSD 5, I've encountered
a weird failure in the test `parallel-tests3.test', which actually caused
the whole testsuite to crash (!) due to a stray SIGTERM.

I've reduced the failure to the attached testcase, which expose the bug
also for the older automake release 1.11.1.

Note that, on GNU/Linux and Solaris 10, the testcases passes without
problems.

To reproduce from a freshly extracted 1.11.1 tarball, make sure GNU make
is in PATH named as `gmake', then run:
  $ ./configure && make
  $ cd tests
  $ cp /path/to/saved/foo.test .
  $ sh foo.test
  ...
  gmake[2]: Leaving directory `/tmp/automake-1.11.1/tests/foo.dir'
  gmake[1]: Leaving directory `/tmp/automake-1.11.1/tests/foo.dir'
  [2]   Terminated              ${sleep}
  gmake: *** [check-am] Terminated
  + signal=15
  + Exit 1
  + set +e
  [1]   Terminated+               ${MAKE} -j1 checkexit
   1
  + exit 1
  + exit_status=1
  + set +e
  + cd /tmp/automake-1.11.1/tests
  + test 15 != 0
  + echo foo: caught signal 15
  foo: caught signal 15
  + echo foo: exit 1
  foo: exit 1
  + exit 1

Attached are the config.log file and test logs for /bin/sh, /bin/ksh, and
bash 4.1.

Any idea of what's going on?

Regards,
  Stefano
/tmp/automake-1.11.1/tests:/home/slattarini/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/X11R6/bin:/usr/pkg/bin:/usr/pkg/sbin:/usr/games:/usr/local/bin:/usr/local/sbin
=== Running test foo.test
+ pwd
/tmp/automake-1.11.1/tests/foo.dir
+ MAKE=gmake
+ export MAKE
+ cat
+ > configure.in 
+ << "END" 
+ cat
+ > Makefile.am 
+ << "END" 
+ cat
+ > foo1.test 
+ << "END" 
+ chmod a+x foo1.test
+ cat
+ > foo2.test 
+ << "END" 
+ chmod a+x foo2.test
+ cat
+ > foo3.test 
+ << "END" 
+ chmod a+x foo3.test
+ aclocal-1.11 -Werror
+ autoconf
+ automake-1.11 --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... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether gmake sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
+ sleep 2
+ gmake -j1 check
gmake  check-TESTS
gmake[1]: Entering directory `/tmp/automake-1.11.1/tests/foo.dir'
gmake[2]: Entering directory `/tmp/automake-1.11.1/tests/foo.dir'
PASS: foo1.test
+ kill 20320
+ test ! -f test-suite.log
+ sleep 2
PASS: foo2.test
PASS: foo3.test
==================
All 3 tests passed
==================
gmake[2]: Leaving directory `/tmp/automake-1.11.1/tests/foo.dir'
gmake[1]: Leaving directory `/tmp/automake-1.11.1/tests/foo.dir'
Terminated 
+ signal=15
+ Exit 1
gmake: *** [check-am] Terminated
foo: caught signal 15
foo: exit 1
/tmp/automake-1.11.1/tests:/home/slattarini/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/X11R6/bin:/usr/pkg/bin:/usr/pkg/sbin:/usr/games:/usr/local/bin:/usr/local/sbin
=== Running test foo.test
++ pwd
/tmp/automake-1.11.1/tests/foo.dir
+ MAKE=gmake
+ export MAKE
+ cat
+ cat
+ for i in 1 2 3
+ cat
+ chmod a+x foo1.test
+ for i in 1 2 3
+ cat
+ chmod a+x foo2.test
+ for i in 1 2 3
+ cat
+ chmod a+x foo3.test
+ aclocal-1.11 -Werror
+ autoconf
+ automake-1.11 --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... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether gmake sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
+ sleep 2
+ gmake -j1 check
gmake  check-TESTS
gmake[1]: Entering directory `/tmp/automake-1.11.1/tests/foo.dir'
gmake[2]: Entering directory `/tmp/automake-1.11.1/tests/foo.dir'
PASS: foo1.test
+ kill 22441
+ test '!' -f test-suite.log
+ sleep 2
PASS: foo2.test
PASS: foo3.test
==================
All 3 tests passed
==================
gmake[2]: Leaving directory `/tmp/automake-1.11.1/tests/foo.dir'
gmake[1]: Leaving directory `/tmp/automake-1.11.1/tests/foo.dir'
Terminated
++ signal=15
++ Exit 1
++ set +e
gmake: *** [check-am] Terminated
++ exit 1
++ exit 1
+ exit_status=1
+ set +e
+ cd /tmp/automake-1.11.1/tests
+ case $exit_status,$keep_testdirs in
+ test 15 '!=' 0
+ echo 'foo: caught signal 15'
foo: caught signal 15
+ echo 'foo: exit 1'
foo: exit 1
+ exit 1
/tmp/automake-1.11.1/tests:/home/slattarini/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R7/bin:/usr/X11R6/bin:/usr/pkg/bin:/usr/pkg/sbin:/usr/games:/usr/local/bin:/usr/local/sbin
=== Running test foo.test
+ pwd
/tmp/automake-1.11.1/tests/foo.dir
+ MAKE=gmake
+ export MAKE
+ cat
+ cat
+ cat
+ chmod a+x foo1.test
+ cat
+ chmod a+x foo2.test
+ cat
+ chmod a+x foo3.test
+ aclocal-1.11 -Werror
+ autoconf
+ automake-1.11 --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... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether gmake sets $(MAKE)... yes
configure: creating ./config.status
config.status: creating Makefile
+ gmake -j1 check
+ sleep 2
gmake  check-TESTS
gmake[1]: Entering directory `/tmp/automake-1.11.1/tests/foo.dir'
gmake[2]: Entering directory `/tmp/automake-1.11.1/tests/foo.dir'
PASS: foo1.test
+ kill 26199
+ test ! -f test-suite.log
+ sleep 2
PASS: foo2.test
PASS: foo3.test
==================
All 3 tests passed
==================
gmake[2]: Leaving directory `/tmp/automake-1.11.1/tests/foo.dir'
gmake[1]: Leaving directory `/tmp/automake-1.11.1/tests/foo.dir'
[2]   Terminated              ${sleep}
+ signal=15
+ Exit 1
+ set +e
gmake: *** [check-am] Terminated
[1]   Terminated              ${MAKE} -j1 check
+ exit 1
+ exit 1
+ exit_status=1
+ set +e
+ cd /tmp/automake-1.11.1/tests
+ test 15 != 0
+ echo foo: caught signal 15
foo: caught signal 15
+ echo foo: exit 1
foo: exit 1
+ exit 1
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by GNU Automake configure 1.11.1, which was
generated by GNU Autoconf 2.65.  Invocation command line was

  $ ./configure 

## --------- ##
## Platform. ##
## --------- ##

hostname = gcc70.fsffrance.org
uname -m = amd64
uname -r = 5.1
uname -s = NetBSD
uname -v = NetBSD 5.1 (GENERIC) #0: Sat Nov  6 13:19:33 UTC 2010  [email-masked]:/home/builds/ab/netbsd-5-1-RELEASE/amd64/201011061943Z-obj/home/builds/ab/netbsd-5-1-RELEASE/src/sys/arch/amd64/compile/GENERIC

/usr/bin/uname -p = x86_64
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /home/slattarini/bin
PATH: /bin
PATH: /sbin
PATH: /usr/bin
PATH: /usr/sbin
PATH: /usr/X11R7/bin
PATH: /usr/X11R6/bin
PATH: /usr/pkg/bin
PATH: /usr/pkg/sbin
PATH: /usr/games
PATH: /usr/local/bin
PATH: /usr/local/sbin

## ----------- ##
## Core tests. ##
## ----------- ##

configure:1722: checking build system type
configure:1736: result: x86_64-unknown-netbsd5.1
configure:1781: checking for a BSD-compatible install
configure:1849: result: /usr/bin/install -c
configure:1860: checking whether build environment is sane
configure:1910: result: yes
configure:2051: checking for a thread-safe mkdir -p
configure:2090: result: lib/install-sh -c -d
configure:2103: checking for gawk
configure:2133: result: no
configure:2103: checking for mawk
configure:2133: result: no
configure:2103: checking for nawk
configure:2133: result: no
configure:2103: checking for awk
configure:2119: found /usr/bin/awk
configure:2130: result: awk
configure:2141: checking whether make sets $(MAKE)
configure:2163: result: yes
configure:2265: checking for perl
configure:2283: found /usr/pkg/bin/perl
configure:2295: result: /usr/pkg/bin/perl
configure:2314: checking whether /usr/pkg/bin/perl supports ithreads
configure:2337: result: yes
configure:2349: checking for tex
configure:2379: result: no
configure:2396: checking whether autoconf is installed
configure:2401: eval autoconf --version
autoconf (GNU Autoconf) 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>, <http://gnu.org/licenses/exceptions.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David J. MacKenzie and Akim Demaille.
configure:2404: $? = 0
configure:2412: result: yes
configure:2419: checking whether autoconf works
configure:2426: cd conftest && eval autoconf -o /dev/null conftest.ac
configure:2429: $? = 0
configure:2438: result: yes
configure:2445: checking whether autoconf is recent enough
configure:2452: cd conftest && eval autoconf -o /dev/null conftest.ac
configure:2455: $? = 0
configure:2464: result: yes
configure:2471: checking whether ln works
configure:2491: result: yes
configure:2506: checking for grep that handles long lines and -e
configure:2564: result: /usr/bin/grep
configure:2569: checking for egrep
configure:2631: result: /usr/bin/grep -E
configure:2636: checking for fgrep
configure:2698: result: /usr/bin/grep -F
configure:2704: checking whether /bin/sh has working 'set -e' with exit trap
configure:2717: result: yes
configure:2876: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by GNU Automake config.status 1.11.1, which was
generated by GNU Autoconf 2.65.  Invocation command line was

  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  $ ./config.status 

on gcc70.fsffrance.org

config.status:776: creating Makefile
config.status:776: creating doc/Makefile
config.status:776: creating lib/Automake/Makefile
config.status:776: creating lib/Automake/tests/Makefile
config.status:776: creating lib/Makefile
config.status:776: creating lib/am/Makefile
config.status:776: creating m4/Makefile
config.status:776: creating tests/Makefile
config.status:776: creating tests/defs
config.status:776: creating tests/aclocal-1.11
config.status:776: creating tests/automake-1.11

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-unknown-netbsd5.1
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_path_EGREP='/usr/bin/grep -E'
ac_cv_path_FGREP='/usr/bin/grep -F'
ac_cv_path_GREP=/usr/bin/grep
ac_cv_path_PERL=/usr/pkg/bin/perl
ac_cv_path_install='/usr/bin/install -c'
ac_cv_prog_AWK=awk
ac_cv_prog_make_make_set=yes
am_cv_autoconf_installed=yes
am_cv_autoconf_version=yes
am_cv_autoconf_works=yes
am_cv_prog_PERL_ithreads=yes
am_cv_prog_ln=ln
am_cv_sh_errexit_works=yes

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='perllibdir="/tmp/automake-1.11.1/lib:./lib" "/tmp/automake-1.11.1/aclocal" --acdir=m4 -I m4'
AMTAR='${SHELL} /tmp/automake-1.11.1/lib/missing --run tar'
APIVERSION='1.11'
AUTOCONF='${SHELL} /tmp/automake-1.11.1/lib/missing --run autoconf'
AUTOHEADER='${SHELL} /tmp/automake-1.11.1/lib/missing --run autoheader'
AUTOMAKE='perllibdir="/tmp/automake-1.11.1/lib:./lib" "/tmp/automake-1.11.1/automake" --libdir=lib'
AWK='awk'
CYGPATH_W='echo'
DEFS='-DPACKAGE_NAME=\"GNU\ Automake\" -DPACKAGE_TARNAME=\"automake\" -DPACKAGE_VERSION=\"1.11.1\" -DPACKAGE_STRING=\"GNU\ Automake\ 1.11.1\" -DPACKAGE_BUGREPORT=\"[email-masked]\" -DPACKAGE_URL=\"http://www.gnu.org/software/automake/\" -DPACKAGE=\"automake\" -DVERSION=\"1.11.1\"'
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/usr/bin/grep -E'
FGREP='/usr/bin/grep -F'
GREP='/usr/bin/grep'
HELP2MAN='${SHELL} /tmp/automake-1.11.1/lib/missing --run help2man'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LIBOBJS=''
LIBS=''
LN='ln'
LTLIBOBJS=''
MAKEINFO='${SHELL} /tmp/automake-1.11.1/lib/missing --run makeinfo'
MKDIR_P='lib/install-sh -c -d'
MODIFICATION_DELAY='2'
PACKAGE='automake'
PACKAGE_BUGREPORT=[email-masked]'
PACKAGE_NAME='GNU Automake'
PACKAGE_STRING='GNU Automake 1.11.1'
PACKAGE_TARNAME='automake'
PACKAGE_URL='http://www.gnu.org/software/automake/'
PACKAGE_VERSION='1.11.1'
PATH_SEPARATOR=':'
PERL='/usr/pkg/bin/perl'
PERL_THREADS='1'
SET_MAKE=''
SHELL='/bin/ksh'
STRIP=''
TEX=''
VERSION='1.11.1'
am_AUTOCONF='autoconf'
am_AUTOHEADER='autoheader'
am__isrc=''
am__leading_dot='.'
am__tar='${AMTAR} chof - "$$tardir"'
am__untar='${AMTAR} xf -'
bindir='${exec_prefix}/bin'
build='x86_64-unknown-netbsd5.1'
build_alias=''
build_cpu='x86_64'
build_os='netbsd5.1'
build_vendor='unknown'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host_alias=''
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /tmp/automake-1.11.1/lib/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='$(top_builddir)/lib/install-sh -c -d'
oldincludedir='/usr/include'
pdfdir='${docdir}'
pkgvdatadir='${datadir}/automake-1.11'
prefix='/usr/local'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sh_errexit_works='yes'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "GNU Automake"
#define PACKAGE_TARNAME "automake"
#define PACKAGE_VERSION "1.11.1"
#define PACKAGE_STRING "GNU Automake 1.11.1"
#define PACKAGE_BUGREPORT "[email-masked]"
#define PACKAGE_URL "http://www.gnu.org/software/automake/"
#define PACKAGE "automake"
#define VERSION "1.11.1"

configure: exit 0