On 12/26/2011 11:26 PM, Jim Meyering wrote: > FAIL: cond29 > ============ > > Running from installcheck: no > Using TAP: no > PATH = > /h/j/w/co/automake/tests:/opt/cov-sa-linux64-5.4.0/bin:/usr/lib64/ccache:/h/j/bin/perl:/h/j/bin:/p/p/git/bin:/p/bin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/local:/usr/local/bin > ++ pwd > /h/j/w/co/automake/tests/cond29.dir > + echo AC_PROG_CC > + cat > + ulimit -v 1 > + sh -c : > ./cond29.test: line 35: /bin/sh: Argument list too long > + ulimit -v 20000 > + sh -c : > + ulimit -v 20000 > + for i in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 > + unindent > + test x = x > ++ printf '%s\n' ' > /^$/b # Nothing to do for empty lines. > x # Get x<indent> into pattern space. > /^$/{ # No prior x<indent>, go prepare it. > g # Copy this 1st non-blank line into pattern space. > s/^\([ ]*\).*/x\1/ # Prepare x<indent> in pattern space. > } # Now: x<indent> in pattern and <line> in hold. > G # Build x<indent>\n<line> in pattern space, and > h # duplicate it into hold space. > s/\n.*$// # Restore x<indent> in pattern space, and > x # exchange with the above duplicate in hold space. > s/^x\(.*\)\n\1// # Remove leading <indent> from <line>. > s/^x.*\n// # Restore <line> when there is no leading <indent>. > ' > ++ sed -e 's/ *# .*//' > + sed_unindent_prog=' > /^$/b > x > /^$/{ > g > s/^\([ ]*\).*/x\1/ > } > G > h > s/\n.*$// > x > s/^x\(.*\)\n\1// > s/^x.*\n//' > + sed ' > /^$/b > x > /^$/{ > g > s/^\([ ]*\).*/x\1/ > } > G > h > s/\n.*$// > x > s/^x\(.*\)\n\1// > s/^x.*\n//' > + echo 'AM_CONDITIONAL([C01], [:])' > + for i in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 > [SNIP repeated traces] > > + for i in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 > + unindent > + test 'x > /^$/b > x > /^$/{ > g > s/^\([ ]*\).*/x\1/ > } > G > h > s/\n.*$// > x > s/^x\(.*\)\n\1// > s/^x.*\n//' = x > + sed ' > /^$/b > x > /^$/{ > g > s/^\([ ]*\).*/x\1/ > } > G > h > s/\n.*$// > x > s/^x\(.*\)\n\1// > s/^x.*\n//' > + echo 'AM_CONDITIONAL([C22], [:])' > + aclocal-1.11a -Werror > /usr/bin/perl: error while loading shared libraries: > libc.so.6: failed to map segment from shared object: > Cannot allocate memory > Ah-ah, memory ulimit contraints imposed by ulimit above:
ulimit -v 20000 seems to be too tight. I can reproduce a similar failure on the Fedora 16 system (on pcc64 machine) at the GCC compile farm, and fix it with the attached patch. Does that patch works for you as well? > + exit_status=127 > + set +e > + cd /h/j/w/co/automake/tests > + test no = yes > + case $am_explicit_skips in > + test 127 -eq 0 > + keep_testdirs=yes > + am_keeping_testdirs > + case $keep_testdirs in > + return 0 > + set +x > cond29: exit 127 > Thanks, Stefano
>From 073711d00759683895805b31fd6dad76d2c26aec Mon Sep 17 00:00:00 2001 Message-Id: <073711d00759683895805b31fd6dad76d2c26aec.1324978874.git.stefano.lattar...@gmail.com> From: Stefano Lattarini <stefano.lattar...@gmail.com> Date: Tue, 27 Dec 2011 10:40:57 +0100 Subject: [PATCH] tests: fix spurious failure of cond29.test * tests/cond29.test: Limit the amount of virtual memory available to the automake process to ~ 50 MB, rather than only ~ 20 MB, to account for higher (but still acceptable) memory usages on some systems (in this case, a Fedora 16 distro on ppc64). To be sure not to reduce coverage, increase the number of potential combinations of automake conditionals from 2**22 = 4194304 to 2**24 = 16777216. Reported by Jim Meyering in automake bug#10374. --- ChangeLog | 12 ++++++++++++ tests/cond29.test | 14 +++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index dfe666a..8f332ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2011-12-27 Stefano Lattarini <stefano.lattar...@gmail.com> + + tests: fix spurious failure of cond29.test + * tests/cond29.test: Limit the amount of virtual memory available + to the automake process to ~ 50 MB, rather than only ~ 20 MB, to + account for higher (but still acceptable) memory usages on some + systems (in this case, a Fedora 16 distro on ppc64). To be + sure not to reduce coverage, increase the number of potential + combinations of automake conditionals from 2**22 = 4194304 to + 2**24 = 16777216. + Reported by Jim Meyering in automake bug#10374. + 2011-12-24 Stefano Lattarini <stefano.lattar...@gmail.com> gitignore: use only one .gitignore file, in the top-level directory diff --git a/tests/cond29.test b/tests/cond29.test index 3361081..3971c08 100755 --- a/tests/cond29.test +++ b/tests/cond29.test @@ -27,16 +27,20 @@ a02_LDADD = a03_SOURCES = EOF -# On this test, Automake 1.7.x would compute all 2**22 = 4194304 +# On this test, Automake 1.7.x would compute all 2**24 = 16777216 # possible combinations of conditionals (it would do this five times, # to define a01_DEPENDENCIES, a02_DEPENDENCIES, a03_OBJECTS, # a04_OBJECTS, and to rewrite bin_PROGRAM), eating all memory, swap, # or cpu time it can found. (ulimit -v 1; sh -c ":") && skip_ "no adequate 'ulimit' builtin found" -(ulimit -v 20000; sh -c ":") || skip_ "no adequate 'ulimit' builtin found" -ulimit -v 20000 - -for i in 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22; do +(ulimit -v 50000; sh -c ":") || skip_ "no adequate 'ulimit' builtin found" +ulimit -v 50000 + +for i in \ + 01 02 03 04 05 06 07 08 09 10 \ + 11 12 13 14 15 16 17 18 19 20 \ + 21 22 23 24 +do unindent >>Makefile.am <<EOF if C$i bin_PROGRAMS += a$i -- 1.7.7.3