This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Do not run timezone tests in parallel.
- From: Stefan Liebler <stli at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Date: Wed, 16 Apr 2014 17:21:07 +0200
- Subject: Re: [PATCH] Do not run timezone tests in parallel.
- Authentication-results: sourceware.org; auth=none
- References: <lijgrq$f8s$1 at ger dot gmane dot org> <mvmioq937c5 dot fsf at hawking dot suse dot de>
I´ve tested the different cases:
-(1) .NOTPARALLEL Makefile with -j2
-(2) original Makefile with -j2
The difference is, that in case (1) timezone/testdata/UTC.test-result is
generated by the rule
%/UTC %/Universal: simplebackw $(zic-deps) %/Etc/UTC
$(build-testdata)
and timezone/testdata/Universal.test-result does not exist.
In case (2) it is vice versa.
timezone/testdata/Universal.test-result exists,
but timezone/testdata/UTC.test-result does not, which leads to the
unresolved test.
In case (1) it is no UNRESOLVED-test, because Universal is not added to
test-special:
test-zones := America/New_York Etc/UTC UTC Europe/Berlin \
Australia/Melbourne America/Sao_Paulo Asia/Tokyo
tests-special += $(addprefix $(testdata)/, $(test-zones))
In the following i excerpted the relevant lines of make --debug=v output:
-(1) .NOTPARALLEL Makefile with -j2:
------------------------------------
> timezone/testdata/America/New_York.test-result
> timezone/testdata/Etc/UTC.test-result
Must remake target `glibcNOTPARALLEL/timezone/testdata/UTC'.
Invoking recipe from Makefile:111 to update target
`glibcNOTPARALLEL/timezone/testdata/UTC'.
> timezone/testdata/UTC.test-result
> timezone/test-tz.test-result
> timezone/testdata/Europe/Berlin.test-result
Successfully remade target file
`glibcNOTPARALLEL/timezone/testdata/Europe/Berlin'.
Considering target file `glibcNOTPARALLEL/timezone/testdata/Universal'.
File `glibcNOTPARALLEL/timezone/testdata/Universal' was considered
already.
Considering target file
`glibcNOTPARALLEL/timezone/testdata/Australia/Melbourne'.
File `glibcNOTPARALLEL/timezone/testdata/Australia/Melbourne' does
not exist.
> timezone/testdata/Australia/Melbourne.test-result
> timezone/testdata/America/Sao_Paulo.test-result
> timezone/testdata/Asia/Tokyo.test-result
> timezone/tst-timezone.test-result
-(2) original Makefile with -j2:
--------------------------------
> timezone/testdata/America/New_York.test-result
> timezone/testdata/Etc/UTC.test-result
Recipe of `glibcJ2/timezone/testdata/Etc/UTC' is being run.
Considering target file `glibcJ2/timezone/testdata/UTC'.
File `glibcJ2/timezone/testdata/UTC' does not exist.
Finished prerequisites of target file `glibcJ2/timezone/testdata/UTC'.
The prerequisites of `glibcJ2/timezone/testdata/UTC' are being made.
Finished prerequisites of target file `glibcJ2/timezone/test-tz.out'.
The prerequisites of `glibcJ2/timezone/test-tz.out' are being made.
Considering target file `glibcJ2/timezone/tst-timezone.out'.
File `glibcJ2/timezone/tst-timezone.out' does not exist.
Considering target file `glibcJ2/timezone/tst-timezone'.
File `glibcJ2/timezone/tst-timezone' was considered already.
Considering target file `glibcJ2/timezone/testdata/Europe/Berlin'.
File `glibcJ2/timezone/testdata/Europe/Berlin' does not exist.
Finished prerequisites of target file
`glibcJ2/timezone/testdata/Europe/Berlin'.
Must remake target `glibcJ2/timezone/testdata/Europe/Berlin'.
Invoking recipe from Makefile:110 to update target
`glibcJ2/timezone/testdata/Europe/Berlin'.
> timezone/testdata/Europe/Berlin.test-result
Considering target file `glibcJ2/timezone/testdata/Universal'.
File `glibcJ2/timezone/testdata/Universal' does not exist.
Finished prerequisites of target file
`glibcJ2/timezone/testdata/Universal'.
Must remake target `glibcJ2/timezone/testdata/Universal'.
Invoking recipe from Makefile:108 to update target
`glibcJ2/timezone/testdata/Universal'.
> timezone/testdata/Universal.test-result
> timezone/testdata/Australia/Melbourne.test-result
> timezone/testdata/America/Sao_Paulo.test-result
> timezone/testdata/Asia/Tokyo.test-result
Considering target file `glibcJ2/timezone/test-tz.out'.
File `glibcJ2/timezone/test-tz.out' does not exist.
Considering target file `glibcJ2/timezone/testdata/America/New_York'.
File `glibcJ2/timezone/testdata/America/New_York' was considered
already.
Considering target file `glibcJ2/timezone/testdata/Etc/UTC'.
File `glibcJ2/timezone/testdata/Etc/UTC' was considered already.
Considering target file `glibcJ2/timezone/testdata/UTC'.
File `glibcJ2/timezone/testdata/UTC' was considered already.
Finished prerequisites of target file `glibcJ2/timezone/test-tz.out'.
Must remake target `glibcJ2/timezone/test-tz.out'.
Invoking recipe from ../Rules:200 to update target
`glibcJ2/timezone/test-tz.out'.
> timezone/test-tz.test-result
> timezone/tst-timezone.test-result
Bye
On 04/16/2014 12:19 PM, Andreas Schwab wrote:
Stefan Liebler <stli@linux.vnet.ibm.com> writes:
According to the output of make, Etc/UTC is called directly before UTC
and both targets collide in parallel execution.
In which way do they collide?
Andreas.