bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: possible solution for -Otarget recurse


From: Stefano Lattarini
Subject: Re: possible solution for -Otarget recurse
Date: Sun, 05 May 2013 11:11:10 +0200

Hi Paul.

On 05/05/2013 08:19 AM, Paul Smith wrote:
> On Sun, 2013-05-05 at 00:44 +0200, Stefano Lattarini wrote:
>> The test 'features/output-sync' now fails for me:
>>
>>   Test timed out after 6 seconds
>>   Error running /storage/home/stefano/src/gnu/make/tests/../make \
>>     (expected 0; got 14): /storage/home/stefano/src/gnu/make/tests/../make \
>>     -f work/features/output-sync.mk.1 -j --output-sync=target
>>   Caught signal 14!
>>   FAILED (4/6 passed)
>>
>> Can you reproduce the failure?  If not, let me know which information you
>> need to debug this, and I'll try to provide them.
> 
> It didn't fail for me.  However, it's possible that the 6 second timeout
> is just a little too short for reliability.
>
Sorry to add this only now, but I realized the failure is only reproducible
if I run the testsuite with "make -j", as in "make -j8 check; and even in
that case, the failure is racy.  With a bare "make check", things work for
me as well.  On the other hand, increasing the parallelism even more, other
tests start to fail as well:

-*-*-*-

$ make check -j16

Making check in glob
make[1]: Entering directory `/storage/home/stefano/src/gnu/make/glob'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/storage/home/stefano/src/gnu/make/glob'
Making check in config
make[1]: Entering directory `/storage/home/stefano/src/gnu/make/config'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/storage/home/stefano/src/gnu/make/config'
Making check in po
make[1]: Entering directory `/storage/home/stefano/src/gnu/make/po'
make[1]: Leaving directory `/storage/home/stefano/src/gnu/make/po'
Making check in doc
make[1]: Entering directory `/storage/home/stefano/src/gnu/make/doc'
make[1]: Nothing to be done for `check'.
make[1]: Leaving directory `/storage/home/stefano/src/gnu/make/doc'
make[1]: Entering directory `/storage/home/stefano/src/gnu/make'
make  loadavg
make[2]: Entering directory `/storage/home/stefano/src/gnu/make'
make[2]: Leaving directory `/storage/home/stefano/src/gnu/make'
make  check-local
make[2]: Entering directory `/storage/home/stefano/src/gnu/make'
cd tests && perl ./run_make_tests.pl -srcdir /storage/home/stefano/src/gnu/make 
-make ../make
The system uptime program believes the load average to be:
uptime
 11:01:21 up 47 min,  4 users,  load average: 0.03, 0.19, 0.21
The GNU load average checking code thinks:
./loadavg
1-minute: 0.030000  5-minute: 0.190000  15-minute: 0.210000
------------------------------------------------------------------------------
       Running tests for GNU make on Linux laptop 3.2.0-4-amd64 x86_64
                               GNU Make 3.82.90
------------------------------------------------------------------------------

Clearing work...
Finding tests...

features/archives ....................................... ok     (8 passed)
features/comments ....................................... ok     (1 passed)
features/conditionals ................................... ok     (4 passed)
features/default_names .................................. ok     (3 passed)
features/double_colon ...................................
*** Test died (features/double_colon): test_driver.pl: 468 -> 
scripts/features/double_colon: 77: Couldn't touch foo: Is a directory

FAILED (4/4 passed)
features/echoing ........................................ ok     (4 passed)
features/errors .........................................
*** Test died (features/errors): test_driver.pl: 468 -> 
scripts/features/errors: 41: Couldn't touch foo: Is a directory

FAILED (0/0 passed)
features/escape ......................................... FAILED (7/8 passed)
features/export ......................................... ok     (12 passed)
features/include ........................................ Error running 
/storage/home/stefano/src/gnu/make/tests/../make (expected 0; got 512): 
/storage/home/stefano/src/gnu/make/tests/../make -f work/features/include.mk.4
Error running /storage/home/stefano/src/gnu/make/tests/../make (expected 0; got 
512): /storage/home/stefano/src/gnu/make/tests/../make -f 
work/features/include.mk.5
FAILED (5/10 passed)
features/load ........................................... ok     (6 passed)
features/loadapi ........................................ ok     (3 passed)
features/mult_rules ..................................... ok     (2 passed)
features/mult_targets ................................... ok     (2 passed)
features/order_only ..................................... FAILED (6/10 passed)
features/output-sync .................................... ok     (6 passed)
features/override ....................................... ok     (4 passed)
features/parallelism .................................... ok     (10 passed)
features/patspecific_vars ............................... ok     (10 passed)
features/patternrules ................................... ok     (10 passed)
features/quoting ........................................ ok     (1 passed)
features/recursion ...................................... ok     (2 passed)
features/reinvoke ....................................... ok     (5 passed)
features/se_explicit .................................... ok     (10 passed)
features/se_implicit .................................... ok     (9 passed)
features/se_statpat ..................................... ok     (4 passed)
features/shell_assignment ............................... ok     (4 passed)
features/statipattrules ................................. ok     (8 passed)
features/targetvars ..................................... ok     (25 passed)
features/utf8 ........................................... ok     (1 passed)
features/varnesting ..................................... ok     (2 passed)
features/vpath .......................................... ok     (2 passed)
features/vpath2 ......................................... ok     (1 passed)
features/vpath3 ......................................... ok     (1 passed)
features/vpathgpath ..................................... ok     (1 passed)
features/vpathplus ...................................... ok     (4 passed)
functions/abspath ....................................... ok     (1 passed)
functions/addprefix ..................................... ok     (1 passed)
functions/addsuffix ..................................... ok     (2 passed)
functions/andor ......................................... ok     (2 passed)
functions/basename ...................................... ok     (1 passed)
functions/call .......................................... ok     (3 passed)
functions/dir ........................................... ok     (1 passed)
functions/error ......................................... ok     (5 passed)
functions/eval .......................................... ok     (9 passed)
functions/file .......................................... ok     (6 passed)
functions/filter-out .................................... ok     (5 passed)
functions/findstring .................................... ok     (1 passed)
functions/flavor ........................................ ok     (1 passed)
functions/foreach ....................................... ok     (4 passed)
functions/guile ......................................... N/A
functions/if ............................................ ok     (1 passed)
functions/join .......................................... ok     (1 passed)
functions/notdir ........................................ ok     (1 passed)
functions/origin ........................................ ok     (1 passed)
functions/realpath ...................................... ok     (2 passed)
functions/shell ......................................... ok     (2 passed)
functions/sort .......................................... ok     (2 passed)
functions/strip ......................................... ok     (2 passed)
functions/substitution .................................. ok     (3 passed)
functions/suffix ........................................ ok     (1 passed)
functions/value ......................................... ok     (1 passed)
functions/warning ....................................... ok     (4 passed)
functions/wildcard ...................................... ok     (6 passed)
functions/word .......................................... ok     (16 passed)
misc/bs-nl .............................................. ok     (18 passed)
misc/close_stdout ....................................... ok     (1 passed)
misc/general1 ........................................... ok     (1 passed)
misc/general2 ........................................... ok     (1 passed)
misc/general3 ........................................... ok     (10 passed)
misc/general4 ........................................... ok     (6 passed)
options/dash-B .......................................... ok     (8 passed)
options/dash-C .......................................... ok     (2 passed)
options/dash-I .......................................... ok     (3 passed)
options/dash-W .......................................... ok     (10 passed)
options/dash-e .......................................... ok     (1 passed)
options/dash-f .......................................... ok     (4 passed)
options/dash-k .......................................... ok     (3 passed)
options/dash-l .......................................... ok     (1 passed)
options/dash-n .......................................... ok     (6 passed)
options/dash-q .......................................... ok     (8 passed)
options/dash-t .......................................... ok     (2 passed)
options/eval ............................................ ok     (2 passed)
options/general ......................................... ok     (1 passed)
options/symlinks ........................................ ok     (10 passed)
options/warn-undefined-variables ........................ ok     (2 passed)
targets/DEFAULT ......................................... ok     (1 passed)
targets/FORCE ........................................... ok     (1 passed)
targets/INTERMEDIATE .................................... ok     (8 passed)
targets/ONESHELL ........................................ ok     (6 passed)
targets/PHONY ........................................... ok     (1 passed)
targets/POSIX ........................................... ok     (4 passed)
targets/SECONDARY ....................................... ok     (12 passed)
targets/SILENT .......................................... ok     (1 passed)
targets/clean ........................................... ok     (2 passed)
variables/CURDIR ........................................ ok     (1 passed)
variables/DEFAULT_GOAL .................................. ok     (5 passed)
variables/INCLUDE_DIRS .................................. ok     (2 passed)
variables/LIBPATTERNS ................................... ok     (2 passed)
variables/MAKE .......................................... ok     (1 passed)
variables/MAKECMDGOALS .................................. ok     (3 passed)
variables/MAKEFILES ..................................... ok     (2 passed)
variables/MAKEFLAGS ..................................... ok     (2 passed)
variables/MAKELEVEL ..................................... ok     (1 passed)
variables/MAKE_RESTARTS ................................. ok     (3 passed)
variables/MFILE_LIST .................................... ok     (1 passed)
variables/SHELL ......................................... ok     (8 passed)
variables/automatic ..................................... ok     (7 passed)
variables/define ........................................ ok     (16 passed)
variables/flavors ....................................... ok     (8 passed)
variables/negative ...................................... ok     (4 passed)
variables/private ....................................... ok     (10 passed)
variables/special ....................................... ok     (2 passed)
variables/undefine ...................................... ok     (4 passed)

10 Tests in 5 Categories Failed (See .diff files in work dir for details) :-(

make[2]: *** [check-regression] Error 1
make[2]: Leaving directory `/storage/home/stefano/src/gnu/make'
make[1]: *** [check-am] Error 2
make[1]: Leaving directory `/storage/home/stefano/src/gnu/make'
make: *** [check-recursive] Error 1

-*-*-*-

The failures are racy in this case as well.  Maybe some environment variable
is leaking from the 'make' process that drives the testsuite into the 'make'
invocations issued by the test scripts?

> Look at line 178 in the test/scripts/features/output-sync file.  It will
> look like this:
> 
>   #MAKE#[1]: Leaving directory '#PWD#/bar'\n", 0, 6);
> 
> The "6" at the end is the timeout.  Try changing that to 10 just to see
> if it helps.  If not then it's a real problem.  I'll need details about
> your system.  Also please send the contents of the work subdirectory
> after the failure.
> 

Regards,
  Stefano



reply via email to

[Prev in Thread] Current Thread [Next in Thread]